小编Koy*_*Koy的帖子

在哪里定义sequelize关联

我在我的 Node js 应用程序中使用sequelize。所有模型都在名为的单独文件中定义,例如,user.jsmessage.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. …

node.js sequelize.js

10
推荐指数
1
解决办法
4028
查看次数

Eslint 无法在 monorepo 设置中的 VSCode for Next.js 中工作

我有一个用于全栈应用程序的 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 (和所有项目文件)是绑定安装的,所以它不应该出现问题。

有任何想法吗?谢谢。

eslint monorepo next.js

5
推荐指数
0
解决办法
412
查看次数

标签 统计

eslint ×1

monorepo ×1

next.js ×1

node.js ×1

sequelize.js ×1