使用 Express 和 Node.JS 找不到 Sequelize 魔法方法
Sequelize magic method not found using Express and Node.JS
我正在使用 Sequelize、Express 和 Node.JS 编写应用程序;设置User和Product的OneToMany关系后,就像这样:
app.js:
Product.belongsTo(User, { constraints: true, onDelete: 'CASCADE' });
User.hasMany(Product);
并且从一个名为 admin.js 的控制器我正在尝试使用魔术方法创建一个新产品:
admin.js:
exports.postAddProduct = (req, res, next) => {
const title = req.body.title;
const imageUrl = req.body.imageUrl;
const price = req.body.price;
const description = req.body.description;
req.user.createProduct({
title: title,
imageUrl: imageUrl,
price: price,
description: description
})
.then((result) => {
console.log("Record successfully created");
return res.redirect("/admin/products");
})
.catch((err) => {
console.log(err);
});
};
提交表单后触发postAddProduct,我得到的错误是:
所以,我的问题是:根据 sequelize 的官方文档,在定义关系后我可以使用方法来创建、编辑或搜索实体,我缺少什么来访问这些方法?
感谢您的评论
尽管我的模型名为 Product,但 table 的名称是 newproducts,因此,为了解决这个问题,我做了以下更改:
req.user.createNewproduct({
title: title,
imageUrl: imageUrl,
price: price,
description: description })
此后问题解决
我正在使用 Sequelize、Express 和 Node.JS 编写应用程序;设置User和Product的OneToMany关系后,就像这样:
app.js:
Product.belongsTo(User, { constraints: true, onDelete: 'CASCADE' });
User.hasMany(Product);
并且从一个名为 admin.js 的控制器我正在尝试使用魔术方法创建一个新产品:
admin.js:
exports.postAddProduct = (req, res, next) => {
const title = req.body.title;
const imageUrl = req.body.imageUrl;
const price = req.body.price;
const description = req.body.description;
req.user.createProduct({
title: title,
imageUrl: imageUrl,
price: price,
description: description
})
.then((result) => {
console.log("Record successfully created");
return res.redirect("/admin/products");
})
.catch((err) => {
console.log(err);
});
};
提交表单后触发postAddProduct,我得到的错误是:
所以,我的问题是:根据 sequelize 的官方文档,在定义关系后我可以使用方法来创建、编辑或搜索实体,我缺少什么来访问这些方法?
感谢您的评论
尽管我的模型名为 Product,但 table 的名称是 newproducts,因此,为了解决这个问题,我做了以下更改:
req.user.createNewproduct({
title: title,
imageUrl: imageUrl,
price: price,
description: description })
此后问题解决