gpt4 book ai didi

javascript - Express.js 和 Sequelize : does not define models

转载 作者:行者123 更新时间:2023-12-03 08:17:22 26 4
gpt4 key购买 nike

我正在使用express.js 和sequelize 开发小型应用程序。现在我有一个问题。我和this tutorial一起去并卡住了。

我正在获取

TypeError: Cannot read property 'findAll' of undefined

对于

router.get('/news', function (req, res, next) {
models.Article.findAll().then(function(article) {
res.json(article);
});
});

我的模型:

'use strict';
module.exports = function(sequelize, DataTypes) {
var Article = sequelize.define('Article', {
title: DataTypes.STRING,
content: DataTypes.TEXT
}, {
classMethods: {
associate: function(models) {
// associations can be defined here
}
}
});
return Article;
};

我的项目由 github 主持,您可以在那里看到的任何代码。

感谢您的帮助。

UPD:已添加console.log(models)路由/新闻。

最佳答案

该错误位于 models/index.js 中。在那里你有:

...
.filter(function(file) {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
...

这排除了所有以 .js 结尾的文件。将最终条件更改为 file.slice(-3) === '.js' 意味着article.js 不会被过滤掉。文章在article.js 中定义。

为了调试此问题,我在您的路由器函数中添加了以下行以获取 GET/news:

console.log('KEYS TO models: ' + JSON.stringify(Object.keys(models)));

这表明模型的唯一成员是sequelize 和Sequelize:

关于javascript - Express.js 和 Sequelize : does not define models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com