Câu hỏi: SDN302 Server-Side development with NodeJS, Express, and MongoDB – Bộ ôn tập cuối kỳ số 3
50 câu trắc nghiệm kèm lời giải của môn Server-Side development with NodeJS, Express, and MongoDB, xếp đúng thứ tự trong đề.
Danh sách câu hỏi
const fs = require('fs');
function readTwoFiles(file1, file2, callback) {
fs.readFile(file1, 'utf8', (err, data1) => {
if (err) return callback(err);
fs.readFile(file2, 'utf8', (err, data2) => {
if (err) return callback(err);
callback(null, data1 + data2);
});
});
}
readTwoFiles('file1.txt', 'file2.txt', (err, result) => {
if (err) {
console.log('Error:', err.message);
} else {
console.log('Result:', result);
}
});Assume 'file1.txt' contains "Hello" and 'file2.txt' does NOT exist.
User.saveAll()User.insertOne()User.create({...})User.make({...})Đáp án đúng: "
User.create({
...
})". Trong Mongoose, Model.create(doc) dựng một document từ object truyền vào, chạy validation và các pre hook save, lưu xuống MongoDB rồi trả về Promise chứa chính document vừa tạo, đã có _id và các giá trị mặc định, nên đáp ứng đủ hai yêu cầu chèn mới và trả về đối tượng. "User.insertOne()" gợi nhớ phương thức insertOne của collection trong driver mongodb gốc, vốn chỉ trả về object xác nhận chứa insertedId chứ không trả về tài liệu đã tạo, và lời gọi rỗng như vậy cũng không có dữ liệu để chèn. "User.saveAll()" không tồn tại trong Mongoose; save() là phương thức của từng document, còn chèn nhiều tài liệu thì dùng insertMany(). "
User.make({
...
})" cũng không phải API nào của Mongoose.
AWSHerokuFirebaseDigitalOceanconst express = require('express');
const app = express();
app.get('/users', (req, res) => {
res.send('GET request to the /users endpoint');
});
app.post('/users', (req, res) => {
res.send('POST request to the /users endpoint');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});const mongoose = require('mongoose');
const userSchema = new mongoose.____({
name: String,
age: Number
});Đáp án đúng: "Schema". Hàm khởi tạo mongoose.Schema nhận một đối tượng mô tả các trường và kiểu, ở đây name là String và age là Number, nên chỗ trống phải điền Schema để có new mongoose.Schema(...); schema chỉ là bản thiết kế cấu trúc và quy tắc kiểm tra dữ liệu. "Model" sai vì model được tạo từ schema bằng mongoose.model('User', userSchema), không khởi tạo bằng new với đối tượng định nghĩa trường. "Document" là một bản ghi cụ thể, tức một thể hiện của model, ví dụ tạo bằng new User(...). "Collection" là tập hợp tài liệu trong MongoDB mà model ánh xạ tới, Mongoose tự đặt tên theo model, không dùng để khai báo schema.