Node.js 我正在尝试更新我的数据库,但它没有更新,并且查询在CMD中是正确的
执行(默认):选择Node.js 我正在尝试更新我的数据库,但它没有更新,并且查询在CMD中是正确的,node.js,express,sequelize.js,Node.js,Express,Sequelize.js,执行(默认):选择id,title,slug,内容,排序,创建数据,从页面更新数据作为页面其中页面id='51'; 执行(默认):更新页面设置标题='gaffer',slug='home',内容='home testingaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
id
,title
,slug
,内容
,排序
,创建数据
,从页面
更新数据
作为页面
其中页面
id='51';
执行(默认):更新页面
设置标题
='gaffer',slug
='home',内容
='home testingaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
主要问题是,当我获取编辑表单时,它会在API中给我id,因为我为它编写了代码,但当我更新它时,它会给我id,这是我的SLUG,这就是为什么我的数据库没有更新的原因。任何帮助都将不胜感激。
/*
* GET Editing page
*/
router.get('/edit-page/:id', function (req, res) {
models.Page.findOne({
where: {
id:req.params.id
}
})
.then(function(page){
id=page.id,
title=page.title,
slug=page.slug,
content=page.content
})
.then(function(){
res.render('admin/edit_page');
})
.catch(function(err){
console.log(err);
})
});
/*
* POST Edit Page
*/
router.post('/edit-page/:id', function (req, res) {
req.checkBody('title', 'Title must have a value.').notEmpty();
req.checkBody('content', 'Content must have a value.').notEmpty();
var title = req.body.title;
var slug = req.body.slug.replace(/\s+/g, '-').toLowerCase();
// if (slug == " ")
// slug = title.replace(/\s+/g, '-').toLowerCase();
var content = req.body.content;
var id = req.body.id;
var condition={
where:
{id:req.params.id}
};
var values={
title:req.body.title,
slug:req.body.slug,
content:req.body.content
};
options={multi:true};
var errors = req.validationErrors();
if (errors) {
res.render('admin/edit_page', {
errors: errors,
title: title,
slug: slug,
content: content,
id:id
});
} else {
// models.Page.find({
// where: {
// id:req.params.id
// }
// })
// .then(function(page){
// if(Page){
models.Page.update(values,{...condition,...options}) //ES6 sprade operator
.then(function(page){
res.render('admin/pages');
})
.catch(function(err){
console.log(err);
})
}
});
无法正确理解您所说的“我的鼻涕虫”是什么意思这就是为什么我的数据库没有更新。如果您能提供帮助,我们将不胜感激?你的意思是你的req.params.id在我的代码中是slug吗?我写id=req.params.id,我的slug是req.body.slug,当我返回真实的url时,但是调用更新方法时,id应该是id=1,但是id='home'你能做控制台吗?登录
{…条件,…选项}
看看你得到了什么输出?同时检查你的post url,这是返回的slug吗?谢谢兄弟,它已经被解决了,id正在“回家”,我从req.params.id改为req.body.id