如何解决使用Sequelize到MySQL发布后端值
我已将Sequelize连接到MysqL,该应用程序已成功在Postman和浏览器中显示了数据库中的数据。这是我直接从终端插入数据库的初始数据。
现在,我想通过Sequelize将新对象保存到数据库中,但它仅向数据库发送“空”值,就好像它没有从我的请求中接收到任何值一样。
但是,当我从Postman发布一个对象(用户)时,我的状态确实是成功的,并且请求的正文具有正确类型的值。
还在我的db.sequelize.sync()
文件中添加了server.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
方法中使用此语法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。