Javascript 自定义模块express js:在根目录中打开模块文件夹时找不到模块名称错误
我的express js应用程序的文件夹结构如下所示 我正在尝试加载位于根目录中的Javascript 自定义模块express js:在根目录中打开模块文件夹时找不到模块名称错误,javascript,node.js,express,Javascript,Node.js,Express,我的express js应用程序的文件夹结构如下所示 我正在尝试加载位于根目录中的模块文件夹 routes/users.js var express = require('express'); var router = express.Router(); var md=require('./modules'); /* GET users listing. */ router.get('/',function(req, res, next) { //res.send('respond wit
模块
文件夹
routes/users.js
var express = require('express');
var router = express.Router();
var md=require('./modules');
/* GET users listing. */
router.get('/',function(req, res, next) {
//res.send('respond with a resource');
console.log('test');
res.status(200).json({ error: 'message' });
});
module.exports = router;
但我得到一个模块未找到错误:
找不到模块“”/modules'
注意:
如果modules
文件夹位于node\u modules
文件夹要求正常工作,但如果其位于项目根目录中,则获取模块名称时出错,
另外,
index.js
文件存在于modules
文件夹中当解析从
开始时,NodeJS中的模块解析相对于从属模块的目录
换言之:
var module = require('../modules'); // Since your file is in `./routes/index`
// and `module` is in `./modules/index`
如果您没有在所需模块前面提供
,则NodeJS将在节点模块
目录中查找该模块
摘自,这是不言自明的
require(X) from module at path Y
1. If X is a core module,
a. return the core module
b. STOP
2. If X begins with './' or '/' or '../'
a. LOAD_AS_FILE(Y + X)
b. LOAD_AS_DIRECTORY(Y + X)
3. LOAD_NODE_MODULES(X, dirname(Y))
4. THROW "not found"
因此,在您的情况下,当您
需要('./modules')
时。NodeJS在当前目录/routes
中查找它,由于它找不到它,因此在节点模块中查找它当解析从开始时,NodeJS中的模块解析相对于从属模块的目录
换言之:
var module = require('../modules'); // Since your file is in `./routes/index`
// and `module` is in `./modules/index`
如果您没有在所需模块前面提供
,则NodeJS将在节点模块
目录中查找该模块
摘自,这是不言自明的
require(X) from module at path Y
1. If X is a core module,
a. return the core module
b. STOP
2. If X begins with './' or '/' or '../'
a. LOAD_AS_FILE(Y + X)
b. LOAD_AS_DIRECTORY(Y + X)
3. LOAD_NODE_MODULES(X, dirname(Y))
4. THROW "not found"
因此,在您的情况下,当您需要('./modules')
时。NodeJS在当前目录/routes
中查找它,然后由于找不到它,所以在node\u modules
中查找它,而不是“/modules”,您可以尝试require(“../modules”)而不是“/modules”,您可以尝试require(“../modules”)