微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Sequelize到MySQL发布后端值

如何解决使用Sequelize到MySQL发布后端值

我已将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方法中使用此语法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。