如何解决express.js中的“无法find模块”(自定义模块)错误

我有我的user.js文件里面的控制器目录和utility.js文件里面的服务目录。

在user.js中,我试图像下面那样访问utility.js。

var Utility = require('./service/utility'); var express = require('express'); var router = express.Router(); 

node.js引发的错误

 Debugger listening on port 5858 module.js:327 throw err; ^ Error: Cannot find module './service/utility' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) 

controllerservice相邻的目录是这样的吗?

 +- service/ | +- utility.js | +- controller/ +- user.js 

require中的相对path相对于当前模块进行处理。 所以如果你的目录是这样布局的,你需要得到相对于user.js的path:

 var Utility = require("../service/utility");