Node.JS Express - 将文件夹导入为模块

时间:2016-07-19 07:15:08

标签: node.js express

我是快递新手。

我要做的是将文件夹作为模块导入,以便将来我可以使用该文件夹中的其他文件作为模块。

所以,我所做的就是改变这一点 -

var routes = require('./routes/index');
var users = require('./routes/users');

app.use('/', routes);
app.use('/users', users);

到此 -

var routes = require('./routes');

app.use('/', routes.index);
app.use('/users', routes.users);

但是我收到这样的错误 -

enter image description here

任何人都可以请求帮助,我该怎么做才能解决这个问题,以便我可以将路径文件夹中的所有文件用作模块?

更新 -

关于@AnubhavSrivastava,我的要求没问题,因为我在MVA教程中已经看过了。链接为here,时间为 1:32:58

代码就是这样 -

enter image description here

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

当你需要一个文件夹时,它默认返回index.js模块,你不会得到route.user,除非你有一个在index.js中导出的​​变量。

从节点js官方文档中提取

作为模块的文件夹

将程序和库组织到自包含目录中很方便,然后为该库提供单个入口点。有三种方法可以将文件夹传递给require()作为参数。

第一种是在文件夹的根目录中创建一个package.json文件,该文件指定一个主模块。示例package.json文件可能如下所示:

{ "name" : "some-library", "main" : "./lib/some-library.js" }

如果这是在./some-library的文件夹中,则require('。/ some-library')将尝试加载./some-library/lib/some-library.js。

这是Node.js对package.json文件的认识程度。

注意:如果package.json的“main”条目指定的文件丢失且无法解析,则Node.js将报告整个模块缺少默认错误:

错误:找不到模块'some-library' 如果目录中没有package.json文件,则Node.js将尝试从该目录中加载index.js或index.node文件。例如,如果上例中没有package.json文件,则require('。/ some-library')会尝试加载:

./一些库/ index.js ./some-library/index.node