Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 是否需要将所有文件夹作为文件夹中的模块?_Node.js_Express - Fatal编程技术网

Node.js 是否需要将所有文件夹作为文件夹中的模块?

Node.js 是否需要将所有文件夹作为文件夹中的模块?,node.js,express,Node.js,Express,我有很多文件夹作为包含rest api的模块,其结构如下: app |— server | |— rest-api | | |— v1 | | | |— module-one | | | |— module-two | | | |— module-three | | | |— module-x | | | └── index.js | | └──... | └──... |— ... └── server.js module.exports = (fu

我有很多文件夹作为包含rest api的模块,其结构如下:

app
|— server
|  |— rest-api
|  |  |— v1
|  |  |  |— module-one
|  |  |  |— module-two
|  |  |  |— module-three
|  |  |  |— module-x
|  |  |  └── index.js
|  |  └──...
|  └──...
|— ...
└── server.js
module.exports = (function () {

    var express      = require( 'express' ),
        router       = express.Router(),
        module_one   = require( './module-one' ),
        module_two   = require( './module-two' ),
        module_three = require( './module-three' );
    //...

    router.use( module_one );
    router.use( module_two );
    router.use( module_three );
    //...

    return router;

})();
v1/index.js
中,我想要避免的是:

app
|— server
|  |— rest-api
|  |  |— v1
|  |  |  |— module-one
|  |  |  |— module-two
|  |  |  |— module-three
|  |  |  |— module-x
|  |  |  └── index.js
|  |  └──...
|  └──...
|— ...
└── server.js
module.exports = (function () {

    var express      = require( 'express' ),
        router       = express.Router(),
        module_one   = require( './module-one' ),
        module_two   = require( './module-two' ),
        module_three = require( './module-three' );
    //...

    router.use( module_one );
    router.use( module_two );
    router.use( module_three );
    //...

    return router;

})();

有没有一种方法可以一次阅读所有的答案?

你可以在文章中修改答案

然后像这样使用它:

loadAllModules(\uu dirname,路由器)


你可以在帖子中修改答案

然后像这样使用它:

loadAllModules(\uu dirname,路由器)

检查此模块是否满足您的节点要求

我们使用这个模块来要求所有Mongoose模式和控制器

更新:

var controllers = require('require-all')({
    dirname     :  __dirname + '/server/rest-api/',
    filter      :  'index.js',
    recursive   : true
});
检查此模块是否满足您的节点要求

我们使用这个模块来要求所有Mongoose模式和控制器

更新:

var controllers = require('require-all')({
    dirname     :  __dirname + '/server/rest-api/',
    filter      :  'index.js',
    recursive   : true
});

我可以在
server.js
中声明
loadAllModules
并在
/server/restapi/v1/index.js
中使用它吗?您可以在
server.js
中的
GLOBAL
下声明它,以便在任何地方都可以访问它
GLOBAL.loadAllModules=函数(目录,路由器){…}
你说的
\uu dirname
是什么意思?我指的是当前目录我可以在
server.js
中声明
loadAllModules
,并在
/server/restapi/v1/index.js
中使用它吗?你可以在
server.js
中的
全局
下声明它,让它在任何地方都可以访问
GLOBAL.loadAllModules=function(directory,router){…}
你所说的
\uuu dirname
是什么意思?我的意思是当前目录你想根据情况举例吗?只需要文件夹,或者文件夹中每个文件夹下的index.js…我已经为您的情况更新了示例。但是从哪里调用index.js呢,它会被调用吗?分配您想要从中调用的dirname属性,从那以后,它将递归检查所有文件夹,并要求它的index.js。你想根据情况做一个例子吗?只需要文件夹,或文件夹的每个文件夹下的index.js…我已经为你的情况更新了示例。但是从哪里调用index.js呢,它会被调用吗?分配您想要从中获取的dirname属性,从中它将递归地检查所有文件夹,并需要它的index.js