您尝试执行的操作是async
,这意味着您需要使用回调.由于sequelize
构建在Promises之上,您实际上应该像这样编写代码:
var findUserDevice = function(userDeviceId){ // return the promise itself return db.DeviceUser.find({ where: { id: userDeviceId } }).then(function(device) { if (!device) { return 'not find'; } return device.dataValues; }); };
后来使用它像:
findUserDevice(req.body.deviceUserId).then( function(UserDevice) { console.log(UserDevice); });
如果您在控制台上未定义而不是"未找到",则表示您的函数正在返回一个值.问题可能是dataValues实际上是未定义的.你需要检查的内容device
.
提示:尝试返回device
或者device.id
PS.如果你想基于id进行搜索,应该去findById()
你的模型的功能.
var device = db.DeviceUser.findById(userDeviceId).then(function(device) { if (!device) { return 'not find'; } return device.dataValues; });