我想将以下代码重构为更易于管理和更清晰的代码库:
FROM
var express = require('express');
var mongoose = require('mongoose');
要
require('../loaders/routes.dependencies.js');
其中“ ../loaders/routes.dependencies.js”是包含最初提到的代码的文件。
PS:,因为我仍在尝试尝试,请随时更正以前的代码。
目标是清除代码,避免每次都依赖多个文件时出现依赖关系,这里有一个deps列表,但是我在这里暴露了最烦人的情况。
** PS **不建议任何其他类型的重构,我特别需要这种重构..谢谢!
答案 0 :(得分:0)
从Node.js文档中:
模块在第一次加载后被缓存。这意味着(除其他事项外)每次对require('foo')的调用都将返回完全相同的对象,如果它可以解析为相同的文件。
多次调用require('foo')可能不会导致模块代码多次执行。这是一个重要功能。有了它,可以返回“部分完成”的对象,从而即使在可能导致循环的情况下,也可以加载传递性依赖项。
要让一个模块多次执行代码,导出一个函数并调用该函数。
您不必担心“每次实例化多个文件”。
关于清洁代码解决方案,要求使用当前正在使用的所有dep的一个文件不是一个好主意,因为您的代码将在将来更改,并且也许您将与该项目的其他人一起工作,因此最好将您的要求放在每个文件的顶部,因为它更具可读性。
您可以通过将路由(表达内容)与自定义函数分开,以在所有路由中重用它们来清理代码。
答案 1 :(得分:0)
野蛮人,但有效:
var fs = require('fs');
// file is included here:
eval(fs.readFileSync('tools.js')+'');