Node JS Wywiad Pytania (od podstawowego do zaawansowanego) Część 5

May 08 2023
Dzisiaj kontynuuję serię pytań do wywiadów w Node JS. Ta seria będzie oparta na 5 częściach obejmujących ważne pytania zadawane podczas wywiadów od podstawowego do zaawansowanego przed rozpoczęciem.

Dzisiaj kontynuuję serię pytań do wywiadów w Node JS. Ta seria będzie oparta na 5 częściach obejmujących ważne pytania zadawane podczas wywiadów od poziomu podstawowego do zaawansowanego

Przed rozpoczęciem. Jeśli chcesz być częścią CODE Culture Community. Wystarczy wypełnić formularz, aby wziąć udział w niedzielnych bezpłatnych sesjach kultury kodowania i uzyskać odpowiedzi na pytania dotyczące kodowania i kariery. Jestem z formularza kliknij mnie

1. Jak korzystasz z Redis w Node.js?

Redis to magazyn danych w pamięci używany do buforowania i przechowywania danych w aplikacji Node.js. Oto przykład użycia Redis do buforowania danych:

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 to popularna baza danych NoSQL używana w aplikacjach Node.js. Oto przykład użycia oficjalnego sterownika MongoDB Node.js do połączenia z bazą danych 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 to biblioteka mapowania dokumentów obiektowych (ODM) dla MongoDB w Node.js. Zapewnia sposób definiowania modeli i schematów dla dokumentów MongoDB oraz ułatwia interakcję z MongoDB w aplikacji Node.js. Oto przykład:

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) to sposób na bezpieczne przesyłanie informacji między stronami w aplikacji Node.js. Oto przykład użycia jsonwebtokenbiblioteki do podpisywania i weryfikowania tokenów 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 to popularna biblioteka służąca do wykonywania żądań HTTP w aplikacji Node.js. Oto przykład:

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);
});