ОБНОВЛЕНИЕ:
Матус Дубрава, вы правы, из ядер, но я изменил эту строку на res.redirect('/post/show/' + pid);
, и она все еще не работает.Маршрут: http://localhost:3000/post/edit/5d0fddd730d83f0c32c1e0ca
Фрагмент, отвечающий за показ отдельных сообщений, работает.Это:
app.get('/post/show/:id', function(req, res){
Post.findById(req.params.id, function(err, post){
res.render('single_post.pug', {
post: post
});
});
});
Тем не менее, перенаправление с res.redirect('/post/show/' + pid);
не работает.
Я работаю над базовым приложением CRUD с Node , MongoDB и Экспресс .Я использую Jade для представления объявлений Bootstrap 4 для стиля.
Существует функция редактирования сообщения, которая работает нормально, но в моем обновлении есть ошибка, которую я не смог обнаружить и исправить:
Вид формы редактирования:
h2 #{title}
form(action="/post/edit/" + post._id, method="POST")
.form-group
input.form-control(type="hidden", name="post_id", value=post.post_id)
.form-group
input.form-control(type="text", name="title", placeholder="Post title" value=post.title)
.form-group
input.form-control(type="text", name="category", placeholder="Post category" value=post.category)
.form-group
textarea.form-control(rows="5", name="body")= post.body
.form-group
input.btn.btn-sm.btn-block.btn-primary(type="submit", value="Update")
Код, соответствующий редактировать и обновление действия:
// Edit post
app.get('/post/edit/:id', function(req, res){
Post.findById(req.params.id, function(err, post){
res.render('edit_post.pug', {
post: post
});
});
});
// Update post
app.post('/post/edit/:id', function(req, res){
let post = {};
post.pid = req.body.post_id;
post.title = req.body.title;
post.category = req.body.category;
post.body = req.body.body;
let query = {_id:req.params.id}
Post.update(query, post, function(err){
if (err) {
console.log(err);
return;
} else {
res.redirect('/post/show/' + pid);
}
});
});
Сообщение обновляется обновляется, но:
- URL-адрес перенаправления
http://localhost:3000/post/show/:pid
; - Браузер показывает
Cannot read property 'title' of undefined
.
Где моя ошибка?
PS: Я не могу добавить весь код здесь, поэтому я собрал this paste-bin.