有没有办法将依赖声明分隔成node / express中自己的文件?

时间:2016-01-17 07:58:50

标签: javascript node.js module dependencies

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

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

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

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

这样的事情是否可能?我研究了很多,但老实说我不确定要找什么。任何建议将不胜感激!!

3 个答案:

答案 0 :(得分:1)

如果您真的想这样做,可以在代码的早期执行以下操作:

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

有些人会认为这种异端或非常糟糕的编程。就个人而言,我发现它比在许多文件顶部使用相同的require行更难看。

例如,我们在每个文件中使用log4jslog4js变量始终是log4js模块本身,所以我认为有一行{{1}是可以接受的与在每个文件中包含行global.log4js = require('log4js');相比,在一个中心位置。

您还写过

  

我无法从我的主app.js获取变量来继续   到exampleModule.js

var log4js = require('log4js');的诀窍是不是实现该目标的方法。如果您需要在不同位置使用变量或数据,则应使用global您拥有变量/数据的地方,并export使用它们。

例如,在require

app.js

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

exampleModule.js

(注意:这不是最好的命名。)

答案 1 :(得分:0)

可能不是最好的方法,但我想你可以创建一个导入所有这些依赖项的模块,并将它们粘贴到这样的上下文变量中:

export dependencies = {
  mongoose : require('mongoose'),
  path : require('path'),
  ... etc
};

然后要求在每个页面的顶部:

var dependencies = require('./[<path to your module>]/dependencies');

然后通过从依赖项对象中推迟来引用这些依赖项:

dependencies.mongoose.somefunction ....

答案 2 :(得分:0)

您可以创建单独的文件(例如variables.js

module.exports = {
    myFirstVar: 1234,
    mySecondVar: 'Hi there!'
};

然后你可以使用

来要求你的变量
var myVariables = require('path/variables.js')

console.log(myVariables.myFirstVar) //1234