我只是在学习node.js,express等-我的代码有点混乱。我想做的是获取所有依赖项声明,例如:

var mongoose = require('mongoose');
var express = require('express');
var path = require('path');
etc, etc, etc


并将它们放在自己的单独模块中,然后在我的主要app.js顶部,只需执行以下操作:

require('./modules/variables.js');


这样的事情可能吗?我已经进行了很多研究,但老实说,我不确定该寻找什么。任何建议将不胜感激!!

最佳答案

如果您确实要执行此操作,则可以在代码的早期执行以下操作:

global.mongoose = require('mongoose');
global.express = require('express');
global.path = require('path');


有些人会认为这是一个杂乱无章或非常糟糕的编程。就个人而言,我发现它比在许多文件的顶部具有相同的require行集更为丑陋。

例如,我们在每个文件中都使用log4js,并且log4js变量始终是log4js模块本身,因此,与在行中使用global.log4js = require('log4js');相比,在中央放置一行var log4js = require('log4js');是可以接受的在每个文件中。

你还写了


  我很难从我的主要app.js中获取变量以继续
  到exampleModule.js


global的诀窍不是实现该目标的方法。如果需要在其他位置使用变量或数据,则应在具有变量/数据的地方使用export,在需要它们的地方使用require

例如,在app.js中:

// db is the mongoose connection
module.exports = {
    db: db
};


exampleModule.js中:

var appVars = require('./app.js');
// Now you can do something with appVars.db


(注意:这不是有史以来最好的命名。)

08-17 10:21