我用sequelize创建数据库实例,但是它没有诸如findAll()之类的方法。我在做什么错了?
const Sequelize = require('sequelize');
const router = require('express').Router();
const db = new Sequelize('web-prog', 'postgres', '1234', {
host: 'localhost',
dialect: 'postgres',
logging: false
});
router.get('/', (req, res) => {
db
.findAll()
.then(itemlist => res.json(itemlist))
.catch(err => console.log(err))
});
module.exports = { db, router };
//然后我需要这样
const db = require('./database').db;
TypeError:db.findAll不是函数
答案 0 :(得分:1)
您正尝试在findAll()
连接上调用Sequelize
,但是在Model
上找到了此方法,这就是您收到错误的原因。
创建一个名为MyModel的模型
module.exports = function Model(db, DataTypes) {
const MyModel = db.define('myModel', {/* fields */, {/* options */});
return MyModel;
}
然后您将加载模型-
const db = require('./database').db;
const myModel = db.import(path.join(__dirname, '/', 'myModel'));
myModel.findAll() <-- this will exist and return a promise