我想通过他/她的ID查找用户。我使用了sequelize findByPk(),响应返回为空,而我使用findAll()获得了所有数据。这样就可以与数据库建立连接。
controllers.js
module.exports = {
findAll: function(req, res) {
User.findAll()
.then(user => {
res.json(user);
})
.catch((err) => res.status(422).json(err));
},
findByPk: function(req, res) {
User.findByPk(req.params.id)
.then(user => {
res.json(user)
})
.catch((err) => console.log(err));
}
};
routes.js
router.get('/all', userController.findAll);
router.get('/oneUser', userController.findByPk);
答案 0 :(得分:1)
您确定req.params.id
包含有效的PK吗?如果您使用硬编码值(例如)进行测试,findByPk是否有效? User.findByPk(1).then....
吗?
如果没有别的,您可以使用where子句,因此您无需进行迭代:
findByPk: function(req, res) {
User.findAll({where : {id : req.params.id }}) /* assumes pk is 'id' field */
.then(user => {
res.json(user)
})
.catch((err) => console.log(err));
}