Pertanyaan Wawancara Node JS (Dasar hingga Lanjutan) Bagian 5
Hari ini saya melanjutkan Seri Pertanyaan Wawancara Node JS. Seri ini akan didasarkan pada 5 bagian yang mencakup pertanyaan-pertanyaan penting yang diajukan dalam wawancara dari Dasar hingga Mahir
Sebelum memulai. Jika Anda ingin menjadi bagian dari Komunitas Budaya CODE. Cukup isi formulir untuk mengikuti Sesi Budaya Kode Gratis pada hari Minggu dan jawab pertanyaan Anda tentang pengkodean dan karier. Saya bentuk klik saya
1. Bagaimana cara menggunakan Redis di Node.js?
Redis adalah penyimpanan data dalam memori yang digunakan untuk caching dan penyimpanan data dalam aplikasi Node.js. Berikut adalah contoh penggunaan Redis untuk meng-cache data:
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 adalah database NoSQL populer yang digunakan dalam aplikasi Node.js. Berikut adalah contoh penggunaan driver resmi MongoDB Node.js untuk terhubung ke 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 adalah pustaka Pemetaan Dokumen Objek (ODM) untuk MongoDB di Node.js. Ini menyediakan cara untuk menentukan model dan skema untuk dokumen MongoDB dan membuatnya lebih mudah untuk berinteraksi dengan MongoDB dalam aplikasi Node.js. Berikut contohnya:
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);
});
Token Web JSON (JWT) adalah cara untuk mengirimkan informasi dengan aman antar pihak dalam aplikasi Node.js. Berikut adalah contoh penggunaan jsonwebtoken
perpustakaan untuk menandatangani dan memverifikasi 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 adalah library populer yang digunakan untuk membuat permintaan HTTP di aplikasi Node.js. Berikut contohnya:
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);
});