【发布时间】:2016-12-05 16:24:58
【问题描述】:
我正在尝试创建新过滤器并打印 (console.log) 刚刚创建的对象的 id,但它没有进入 .then 函数。 代码如下:
var Sequelize = require('sequelize');
var FilterModel = require('../models/filters');
var Filter = new FilterModel(Database, Sequelize);
Filter.create({ name: data.filter_name }).then(function(filter) {
console.log( '***************************************' );
});
并且'**'没有打印,但条目在数据库中。
当我尝试这样做时:
var filter = Filter.create({ name: data.filter_name })
并打印“过滤器”,我得到了带有 created_at 等的新实例,但 id 为 NULL。
id定义为:
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
请有人帮忙看看这里出了什么问题?
谢谢!
【问题讨论】:
-
你确定 Filter.create() 返回一个 promise 或者至少是一个 thenable 对象吗?如果是这样,promise 可能刚刚返回被拒绝,因此您可以尝试添加第二个函数来捕获拒绝的结果。
-
你的
new FilterModel()应该返回Sequelize.define()对象 -
@TilekbekovYrysbek 我已经在模型中定义了。
标签: javascript node.js express promise sequelize.js