คำถามสัมภาษณ์โหนด JS (พื้นฐานถึงขั้นสูง) ตอนที่ 5
วันนี้ฉันกำลังดำเนินการต่อชุดคำถามสัมภาษณ์ Node JS ซีรีส์นี้จะอิงเนื้อหา 5 ส่วนซึ่งครอบคลุมคำถามสำคัญที่ถามในการสัมภาษณ์ตั้งแต่ระดับพื้นฐานไปจนถึงระดับสูง
ก่อนเริ่ม หากคุณต้องการเป็นส่วนหนึ่งของชุมชนวัฒนธรรม CODE เพียงกรอกแบบฟอร์มเพื่อเข้าร่วม Code Culture Sessions ฟรีในวันอาทิตย์และรับคำตอบสำหรับคำถามของคุณเกี่ยวกับการเขียนโค้ดและอาชีพ ฉันเป็นแบบฟอร์มคลิกฉัน

1. คุณใช้ Redis ใน Node.js อย่างไร
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 เป็นฐานข้อมูล NoSQL ยอดนิยมที่ใช้ในแอปพลิเคชัน Node.js ต่อไปนี้คือตัวอย่างการใช้ไดรเวอร์ 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 เป็นไลบรารี Object Document Mapping (ODM) สำหรับ MongoDB ใน Node.js มีวิธีกำหนดโมเดลและสคีมาสำหรับเอกสาร MongoDB และทำให้โต้ตอบกับ MongoDB ในแอปพลิเคชัน Node.js ได้ง่ายขึ้น นี่คือตัวอย่าง:
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) เป็นวิธีการส่งข้อมูลอย่างปลอดภัยระหว่างฝ่ายต่างๆ ในแอปพลิเคชัน 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 เป็นไลบรารียอดนิยมที่ใช้สำหรับสร้างคำขอ HTTP ในแอปพลิเคชัน Node.js นี่คือตัวอย่าง:
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);
});