【问题标题】:findAll is not a functionfindAll 不是函数
【发布时间】:2023-03-06 12:43:01
【问题描述】:

我正在基于此sequelize example 构建示例应用程序。

我收到以下错误:

TypeError: models.User.findAll.then 不是函数

config/config.json

{
  "development": {
    "username": "postgres",
    "password": "root",
    "database": "test",
    "host": "127.0.0.1",
    "dialect": "postgres",
    "port": "5432"
  }
...same for test & production

controllers/user.js

var express = require('express');
var router = express.Router();
var models = require('../models');

router.get('api/user', function (req, res) {
    models.User.findAll.then(function(users) {
        res.json(users);
    });
});

models/User.js

"use strict";
module.exports = function(sequelize, DataTypes) {
    var User = sequelize.define("User", {
        id : {
            type : DataTypes.INTEGER,
            primaryKey: true,
            allowNull : false,
        },
        name : {
            type : DataTypes.STRING,
            allowNull : false,
        },
        email : {
            type : DataTypes.STRING,
            allowNull : false,
        },
        role : {
            type : DataTypes.INTEGER,
            allowNull : false,
        }
    }, {
        tableName: 'user'
    });
    return User;
};

models/index.js 与 github repo 中的基本相同

"use strict";

var fs = require("fs");
var path = require("path");
var Sequelize = require("sequelize");
var env = process.env.NODE_ENV || "development";
var config = require(__dirname + '/../config/config.json')[env];
var sequelize = new Sequelize(config.database, config.username, config.password, config);

var db = {};

fs.readdirSync(__dirname).filter(function(file) {
    return (file.indexOf(".") !== 0) && (file !== "index.js");
}).forEach(function(file) {
    var model = sequelize["import"](path.join(__dirname, file));
    db[model.name] = model;
});

Object.keys(db).forEach(function(modelName) {
    if ("associate" in db[modelName]) {
        db[modelName].associate(db);
    }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

【问题讨论】:

  • findAll 是一种方法。你需要叫它findAll()

标签: node.js postgresql express sequelize.js


【解决方案1】:

findAll 是一种方法。

您需要调用它,findAll()

这将返回一个可以使用 then 链接的承诺

【讨论】:

    猜你喜欢
    • 2020-04-08
    • 2017-04-24
    • 2019-11-17
    • 2021-03-21
    • 2018-07-09
    • 2017-05-25
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多