Node JS 인터뷰 질문(기초-고급) 파트 5

May 08 2023
오늘 저는 Node JS 인터뷰 질문 시리즈를 계속하고 있습니다. 이 시리즈는 시작하기 전에 기본에서 고급까지 인터뷰에서 묻는 중요한 질문을 다루는 5개의 파트를 기반으로 합니다.

오늘 저는 Node JS 인터뷰 질문 시리즈를 계속하고 있습니다. 이 시리즈는 Basic에서 Advanced까지 인터뷰에서 묻는 중요한 질문을 다루는 5개의 파트를 기반으로 합니다.

시작하기 전에. CODE Culture Community의 일원이 되고 싶다면. 양식을 작성하여 일요일 무료 코드 문화 세션에 참여하고 코딩 및 경력에 대한 질문에 대한 답을 얻으십시오. 나는 양식 클릭 나를

1. Node.js에서 Redis를 어떻게 사용합니까?

Redis는 Node.js 애플리케이션의 캐싱 및 데이터 저장에 사용되는 메모리 내 데이터 저장소입니다. 다음은 Redis를 사용하여 데이터를 캐시하는 예입니다.

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는 Node.js 애플리케이션에서 사용되는 널리 사용되는 NoSQL 데이터베이스입니다. 다음은 공식 MongoDB Node.js 드라이버를 사용하여 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는 Node.js의 MongoDB용 ODM(개체 문서 매핑) 라이브러리입니다. MongoDB 문서에 대한 모델 및 스키마를 정의하는 방법을 제공하고 Node.js 애플리케이션에서 MongoDB와 더 쉽게 상호 작용할 수 있도록 합니다. 예를 들면 다음과 같습니다.

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 웹 토큰(JWT)은 Node.js 애플리케이션에서 당사자 간에 정보를 안전하게 전송하는 방법입니다. jsonwebtoken다음은 라이브러리를 사용하여 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는 Node.js 애플리케이션에서 HTTP 요청을 만드는 데 사용되는 인기 있는 라이브러리입니다. 예를 들면 다음과 같습니다.

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