问题描述
我已将Sequelize连接到MySQL,该应用程序已成功在Postman和浏览器中显示了数据库中的数据。这是我直接从终端插入数据库的初始数据。
现在,我想通过Sequelize将新对象保存到数据库中,但它仅向数据库发送“空”值,就好像它没有从我的请求中接收到任何值一样。
但是,当我从Postman发布一个对象(用户)时,我的状态确实是成功的,并且请求的正文具有正确类型的值。
还在我的db.sequelize.sync()
文件中添加了server.js
。
有什么想念的东西吗?
这是我在users.js
控制器文件中的代码:
const db = require('../models');
const User = db.users;
User.sync();
exports.createUser = (req,res) => {
const userWithPic = new User({
...req.body,picture: `${req.protocol}://${req.get('host')}/images/${req.file.filename}`,});
User.create(userWithPic)
.then((data) => res.send(data))
.catch((err) => res.status(500).send(err);
});
};
还注意到命令npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
确实创建了模型,但它并未在迁移文件夹中创建迁移。我怀疑它是否相关,但是应该有。
谢谢!
解决方法
我实际上解决了这个问题。只需删除new User
,因为Sequelize不会在create
方法中使用此语法。