我经常看到应用程序使用的所有模块(Express.js)都添加在索引文件“app.js”的最开头。像这样:
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var mongo = require('mongodb');
var mongoose = require('mongoose');
就是这样,“app.js”中没有任何内容可以处理它们。它们在其他地方使用,例如,这些模块可能需要路由文件“/routes/login.js”,其中它们的添加是重复的。
在“app.js”中添加所有模块的问题是什么?只在真正需要的地方添加它们?它是公约的一部分还是有一些真正的需求?
答案 0 :(得分:3)
很可能人们开始在一个文件中编写他们的项目。它们包括那里的所有内容,然后,当他们将代码分成多个文件时,他们忘记删除require
。
我能想到的唯一半实际好处是在开始时预加载模块,因为从技术上讲,当你需要一个模块两次时,它应该解析为同一个对象,并且它的所有'初始化应该只执行一次。但是,这真的是拉伸它。我想人们会忘记。