Я пытаюсь использовать идентификатор задачи, сгенерированный в mongoDB, для рендеринга шаблона, который принимает идентификатор задачи в качестве входных данных. Я новичок в node и mongoDB, поэтому прошу прощения за неправильные термины. Приведенный ниже метод findOne возвращает ноль для параметра данных в своей функции обратного вызова, хотя идентификатор задачи заполняется в URL.
Я пытался использовать exec () и цепочку then (), но реализация не приводит к заполнению данных. Также версия MongoDB - 3.4.
var express = require('express');
var router = express.Router();
router.get('/createTask', function(req, res) {
var newTask = new Task();
newTask.save(function( err, data) {
if (err) {
console.log(err);
res.render('error');
} else {
res.redirect('/task/' + data._id);
}
})
});
router.get('/task/:id', function(req, res) {
if (req.params.id) {
Task.findOne({_id: req.params.id}, function(err, data) {
if (err) {
console.log(err);
res.render('error');
}
if (data) {
res.render('task', {data: data});
} else {
res.render('error');
}
})
} else {
res.render('error');
}
});
module.exports = router;
Это должно сделать шаблон задачи с простым h1, добавленным в тест, но вместо этого возвращает пустую страницу.