gpt4 book ai didi

sequelize.js - Sequelize CLI : sequelize init:models, 这是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 22:19:33 31 4
gpt4 key购买 nike

sequelize init:models 命令会创建一个“models”文件夹并添加一个 index.js。

有人能解释一下这个 index.js 文件到底做了什么,以及它如何适应 Sequelize 的工作流程吗?我真的希望有人能在文件中添加一些文档或评论。

最佳答案

基本上,它会读取“models”目录中的所有内容,并将它们加载到 db 对象中供您使用

假设您有以下子目录结构:

C:.
│ package.json
│ server.js

├───config
│ config.json

├───models
│ company.js
│ contact.js
│ index.js // your index.js
│ job.js
│ task.js

这是一个示例 company.js。它所做的只是声明了 Sequelize 的表。 contact.js、job.js 和 task.js 具有相似的结构。
module.exports = function (sequelize, DataTypes) {
var Company = sequelize.define("Company", {
user_id: {
type: DataTypes.INTEGER
},
company: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
notes: {
type: DataTypes.TEXT
},
rating: {
type: DataTypes.INTEGER
}
});
return Company;
};

陪我到此为止?好的。索引将读取模型子目录中的所有其他 js 文件,并为您构建一个 db 对象。然后,您可以在快速服务器的 api-routes 中使用它。例如...
 app.get("/api/company", function (req, res) {
console.log("At /api/company GET...")
db.Company.findAll({ // <<------ I just call db.Company...
where: {
user_id: req.user.id
}
}).then(function (dbCompany) {
res.json(dbCompany);
});
});

如果我想用工作表做点什么,我就做
    db.Job.findAll({     // <<------ I just call db.Job... 

同样,对于 contact.js 和 task.js 也是如此。

如果没有 index.js,我必须分别引用每个模型。 Index.js 为我完成了所有这些到一个对象 db.(modelname) 中,然后我可以使用 sequelize 函数。

更有趣的是,当您添加模型时,您不必添加额外的声明。你可以引用你的代码。

假设您刚刚为具有与上述结构类似的注释表添加了一个“comment.js”。

您不需要修改 index.js。它会在运行时自动找到它并将其添加到 db.(modelname) 对象中。所以你可以添加一个新的路由,调用如下:
    db.Comment.findAll({    ...

基本上可以为您节省很多苦差事。

关于sequelize.js - Sequelize CLI : sequelize init:models, 这是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61604366/

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