我在我的 Node js 应用程序中使用sequelize。所有模型都在名为的单独文件中定义,例如,user.js等message.js。我还有index.js自动生成的文件,这是其中的一个片段,您可能会认出它:
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
sequelize = new Sequelize(config.database, config.username, config.password, config);
}
fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = sequelize['import'](path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
Run Code Online (Sandbox Code Playgroud)
所以我在这里查看sequelize的关联手册。我无法弄清楚的是,在我的情况下,这会去哪里,因为我使用的是自动生成的index.js文件,该文件收集所有models. …
我有一个用于全栈应用程序的 monorepo 项目。我现在正在开发的两项服务是 NestJs API 和 Next.js ssr/frontend。
我的文件夹结构如下:
services/
api-main/
.eslintrc.js
//nestjs project files
ssr/
.eslintrc.json
//next.js project files
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它们使用单独的配置,每个配置都是由各自的引导程序(@nest/cli 和 create-next-app)自动生成的。
我还将这两个位置添加到 eslint 工作目录设置中:
{
"eslint.workingDirectories": ["./services/ssr", "./services/api-main"]
}
Run Code Online (Sandbox Code Playgroud)
Eslint 显然适用于 NestJS 部分,但不适用于 Next.js 部分。即使当我运行npm run lintor时npx eslint services/ssr/src,无论是否有任何错误,我都不会收到错误(我已经通过故意创建未使用的变量来测试这一点)。ESLint 输出也没有显示任何错误,就好像一切正常一样。正如前面提到的,Next.js 的 eslint 配置是自动生成的并且非常小:
{
"extends": "next/core-web-vitals"
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试广泛搜索这个问题,但每篇文章/线程都说 eslint 工作目录设置应该修复它,但显然这里的情况并非如此。
我不确定它是否相关,但开发是通过 docker 设置的,但是 node_modules (和所有项目文件)是绑定安装的,所以它不应该出现问题。
有任何想法吗?谢谢。