类型错误:无法读取未定义的属性“findAll”(expressjs)

新手上路,请多包涵

类型错误:无法读取未定义(expressjs)的属性“findAll”。

所有功能(续集)都不起作用。所有错误:无法读取属性“sequelize 方法”…

 module.exports = function (sequelize, DataTypes) {
var User = sequelize.define('user', {
    email: {type: DataTypes.STRING(32), unique: true, allowNull: false},
});

return User;
};

控制器:

 models  = require('./../models');

exports.index = function (request, response, next) {
    models.User.findAll({attributes: ['id', 'username']});
};

原文由 Designlenta Gogo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 244
1 个回答

我遇到了同样的问题,下面的更改对我有用。这可能对未来的用户有用 -

当您使用 sequelize 模型时,您需要使用定义的模型类名称,即 findAll 行中的“user”而不是“User”:

 models  = require('./../models');
exports.index = function (request, response, next) {
    models.user.findAll({attributes: ['id', 'username']});
};

“用户”是一个变量,sequelize 定义分配给它,并且在该模型定义之外不被识别。 “用户”是正在创建的表名以及续集模型类名,这需要在任何类型的数据库查询中使用。

原文由 Vaij 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题