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