Câu hỏi: SDN302 Server-Side development with NodeJS, Express, and MongoDB – Bộ ôn tập cuối kỳ số 2
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 đề. Trang 2/3 — câu 21–40.
Danh sách câu hỏi
mongoose.define()mongoose.Model()mongoose.create()mongoose.model()Đáp án đúng: "
app.get('/logout', (req, res) => {
req.session.destroy((err) => {
if (err) {
console.log(err);
}
else {
res.redirect('/login');
}
}
);
});". Gói express-session gắn vào req.session một đối tượng Session có phương thức destroy(callback): nó xoá dữ liệu phiên khỏi store, bỏ req.session rồi mới gọi callback. Lần theo đoạn đúng: route GET /logout gọi destroy, chờ trong callback, nếu có err thì ghi log, nếu không mới chạy res.redirect('/login'), nên việc chuyển hướng chỉ xảy ra khi phiên đã thật sự bị huỷ. Đoạn gọi "req.session.delete()" sai vì Session của express-session không có phương thức delete, lệnh này ném TypeError trước khi kịp chuyển hướng. Đoạn gọi "req.session.remove()" cũng sai vì remove không nằm trong API của Session, kết quả là lỗi không phải hàm như trên. Đoạn gọi "req.session.invalidate()" mượn cách viết của HttpSession trong Java Servlet, mang sang Express thì không tồn tại; hơn nữa nó gọi res.redirect ngay mà không chờ store xoá xong.
express.staticexpress.jsonexpress.sessionexpress.urlencodedfindJoin()populate()joinWith()refFetch()