Nodo JS Interview Questions (da Base ad Avanzato) Parte 5
Oggi continuo la serie di domande sull'intervista a Node JS. Questa serie si baserà su 5 parti che coprono le domande importanti poste nelle interviste da Base ad Avanzato
Prima di cominciare. Se vuoi far parte di CODE Culture Community. Basta compilare il modulo per partecipare alle sessioni gratuite di cultura del codice di domenica e ottenere risposte alle tue domande su programmazione e carriera. Sono forma cliccami
1. Come usi Redis in Node.js?
Redis è un archivio dati in memoria utilizzato per la memorizzazione nella cache e l'archiviazione dei dati in un'applicazione Node.js. Ecco un esempio di utilizzo di Redis per memorizzare nella cache i dati:
javascriptCopy code
const redis = require('redis');
const client = redis.createClient();
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = 'Data fetched';
resolve(data);
}, 2000);
});
}
async function getCachedData() {
const data = await client.get('data');
if (data) {
console.log('Data retrieved from cache');
return data;
}
const newData = await fetchData();
await client.set('data', newData);
console.log('Data retrieved from server');
return newData;
}
getCachedData().then((data) => {
console.log(data);
}).catch((error) => {
console.error(error);
});
MongoDB è un popolare database NoSQL utilizzato nelle applicazioni Node.js. Ecco un esempio di utilizzo del driver MongoDB Node.js ufficiale per connettersi a un database MongoDB:
javascriptCopy code
const { MongoClient } = require('mongodb');
async function main() {
const uri = 'mongodb://localhost:27017';
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
try {
await client.connect();
console.log('Connected to MongoDB');
const database = client.db('mydb');
const collection = database.collection('mycollection');
await collection.insertOne({ name: 'John' });
const documents = await collection.find().toArray();
console.log(documents);
} catch (error) {
console.error(error);
} finally {
await client.close();
console.log('Disconnected from MongoDB');
}
}
main();
Mongoose è una libreria Object Document Mapping (ODM) per MongoDB in Node.js. Fornisce un modo per definire modelli e schemi per i documenti MongoDB e semplifica l'interazione con MongoDB in un'applicazione Node.js. Ecco un esempio:
javascriptCopy code
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydb', { useNewUrlParser: true, useUnifiedTopology: true });
const personSchema = new mongoose.Schema({
name: String,
age: Number
});
const Person = mongoose.model('Person', personSchema);
const person = new Person({
name: 'John',
age: 30
});
person.save().then(() => {
console.log('Person saved');
}).catch((error) => {
console.error(error);
});
JSON Web Tokens (JWT) è un modo per trasmettere in modo sicuro le informazioni tra le parti in un'applicazione Node.js. Ecco un esempio di utilizzo della jsonwebtoken
libreria per firmare e verificare i JWT:
javascriptCopy code
const jwt = require('jsonwebtoken');
const secret = 'mysecret';
const payload = {
name: 'John',
email: '[email protected]'
};
const token = jwt.sign(payload, secret, { expiresIn: '1h' });
console.log(token);
jwt.verify(token, secret, (error, decoded) => {
if (error) {
console.error(error);
} else {
console.log(decoded);
}
});
Axios è una popolare libreria utilizzata per effettuare richieste HTTP in un'applicazione Node.js. Ecco un esempio:
javascriptCopy code
const axios = require('axios');
async function fetchData() {
try {
const response = await axios.get('<https://jsonplaceholder.typicode.com/posts>');
console.log(response.data);
} catch (error) {
console.error(error);
}
}
fetchData();
javascriptCopy code
const fs = require('fs');
const readableStream = fs.createReadStream('input.txt');
readableStream.on('data', (chunk) => {
console.log(`Received ${chunk.length} bytes of data.`);
});
readableStream.on('end', () => {
console.log('Finished reading data.');
});
readableStream.on('error', (error) => {
console.error(error);
});