首页 > 解决方案 > 如何在我的应用程序架构中确保有效的依赖关系图

问题描述

tl;博士:

是否可以加强/保证(使用库或其他东西).js 文件只能访问特定的模块子集?

例如:如果 .js 文件位于文件夹中/controllers,则仅允许访问特定的全局模块(例如:)express并从特定文件夹(例如:)导入../repositories。不允许在此列表之外的任何内容

背后的理由:

在有许多开发人员的大型项目中,几乎不可避免地有人会侵入层。例如:在 MVC 控制器的操作中,通过db driver / SQL 访问数据库,而无需通过存储库或更复杂的抽象

const express = require('express');
const router = express.Router();
const pg = require('pg');
const path = require('path');
const connectionString = process.env.DATABASE_URL;

router.get('/api/v1/todos', (req, res, next) => {
  const results = [];
  pg.connect(connectionString, (err, client, done) => {
    const query = client.query('SELECT * FROM items ORDER BY id ASC;');
    query.on('row', (row) => { results.push(row); });
    query.on('end', () => {
      done();
      return res.json(results);
    });
  });
});

这个非常基本的例子,只是为了说明问题。事实上,在多层/多模块系统中,事情实际上有点复杂,随着项目的发展,出现无效的依赖关系图是很常见的。

我知道通过团队培训可以解决部分问题,但我想知道是否有任何方法可以系统地加强这一点。也许在 ESLint 上接近无限制导入无限制模块。

编辑:

标签: javascriptnode.jsarchitecturebackend

解决方案


推荐阅读