【发布时间】:2016-12-31 23:18:11
【问题描述】:
我有在 Node.js 项目中运行良好的基于 Sequelize 的代码。我将该代码移到 AWS Lambda 处理程序中,并使用 node-lambda 模块对其进行测试。现在 Sequelize 代码似乎被跳过了。我不确定在 Lambda 完成之前是否没有处理承诺,或者我是否遗漏了其他东西。以下代码跳过“期间”console.log,如下面的输出所示。
var models = require('./models');
exports.handler = function( event, context, callback ) {
console.log("Before");
var body = JSON.parse(event.body);
// Find the device ID from the devices table
models.Device.findOne({where: {device_uuid: body.device_uuid}, attributes: ['id']}).then(function(device) {
console.log("During");
// Make sure that we got a device back
if (device === null) {
console.log("Device not found - could not insert data");
return;
}
else {
console.log("Device found, inserting data - " + body.device_uuid);
//Insert the data for this device
models.Data.create({
device_id: device.id,
data: body.data
});
}
});
console.log("After");
callback(null, "{\"status\": \"success\"}");
}
产量...
Before
After
Success:
"{\"status\": \"success\"}"
关于我哪里出错了有什么想法吗?我正在使用 Node v5.9.0。
【问题讨论】:
-
我发现如果我删除回调引用,Sequelize 代码运行良好。
-
我有同样的问题,但下面的答案都没有,删除回调引用对我有用。
标签: sequelize.js