使用 Sequelize 的后端问题发布值到 MySQL
Backend issue posting values with Sequelize to MySQL
我已将 Sequelize 连接到 MySQL,应用程序成功地在 Postman 和浏览器中显示了我的数据库中的数据。这是我直接从终端插入数据库的初始数据。
现在,我想通过 Sequelize 将新对象保存到我的数据库中,但它只向数据库发送“空”值,就好像它没有从我的请求中收到任何值一样。
但是,当我 post 来自 Postman 的对象(用户)时,我的状态确实是成功的,并且我的请求正文具有正确类型的值。
还在我的 server.js
文件中添加了 db.sequelize.sync()
。
知道我可能错过了什么吗?
这是我在 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
方法一起使用。
我已将 Sequelize 连接到 MySQL,应用程序成功地在 Postman 和浏览器中显示了我的数据库中的数据。这是我直接从终端插入数据库的初始数据。
现在,我想通过 Sequelize 将新对象保存到我的数据库中,但它只向数据库发送“空”值,就好像它没有从我的请求中收到任何值一样。
但是,当我 post 来自 Postman 的对象(用户)时,我的状态确实是成功的,并且我的请求正文具有正确类型的值。
还在我的 server.js
文件中添加了 db.sequelize.sync()
。
知道我可能错过了什么吗?
这是我在 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
方法一起使用。