【问题标题】:Cannot read property 'findAll' of undefined无法读取未定义的属性“findAll”
【发布时间】:2017-06-14 01:44:34
【问题描述】:

我正在使用 findAll 方法搜索所有用户,但它给出了这个错误, 无法读取未定义的属性“findAll”。

user.js

var user = require("../../models/user");
var sequelize = require('sequelize');
var constants = require("../../config/constants");
var requestHelper = require("../../helpers/request");
var responseHelper = require("../../helpers/response");
var model = require("../../models");

 var main = {
    title: "Hello World",
    statusCode: constants.HTTP.CODES.SUCCESS
}

main.signup = function (req, res, next) {

    var postBody = requestHelper.parseBody(req.body); //requestHelper converts into json format
    var responseBody = {}; `

   if (postBody.name != null && postBody.password != null) {

    model.user.findAll().then(function (emp) { // finding user 

          //...........working......//

                 });
            }
        });
    }
}

  module.exports = main;

我已经使用 console.log(model.user) 检查它说未定义但无法找出导致它的问题 user.js的模型

`'use strict';
module.exports = function(sequelize, DataTypes) {
  var user = sequelize.define('User', {
    name: DataTypes.STRING,
    password: DataTypes.STRING
  }, {
    classMethods: {
      associate: function(models) {
        // associations can be defined here
      }
    }
  });
  return user;
};

`

【问题讨论】:

  • 可能是因为model.userundefined 可能你指的是user 是文件顶部最先导入的
  • 是的,它是指导入的用户......但它并没有解决问题

标签: javascript mysql express sequelize.js mean-stack


【解决方案1】:

“model.user”未初始化。调试的可能方法是将警报(或 console.log)设置为

alert('model.user is : '+model.user); 

console.log('model.user is : '+model.user);

根据这些警报,您将能够调试其中哪些是未定义的。如果您能够发现它未定义,请检查模型的源以查看“用户”是否已正确定义。如果上述建议不起作用,请分享模型源。

【讨论】:

  • 它仍然显示未定义。我添加了用户的模型
  • 可以分享一下model的源码吗?
猜你喜欢
  • 2016-09-07
  • 2016-04-20
  • 1970-01-01
  • 2020-01-23
  • 2020-11-25
  • 2021-07-17
  • 2019-10-20
  • 2022-12-24
  • 2019-10-22
相关资源
最近更新 更多