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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...