错误“尝试扩展默认后端时无法找到模块'errors.server.controller.js'”

时间:2015-09-17 12:49:10

标签: mean-stack meanjs

我想在我的后端添加新代码,这会将一些数据放到MongoDB集合中。我决定在core.server.controller.js中这样做,因为我的应用程序非常简单,我不需要为此创建新模块。所以我打开了/app/controllers/users/users.profile.server.controller.js,一个mean.js内置控制器并复制了

var _ = require('lodash'),
errorHandler = require('../errors.server.controller.js'),
mongoose = require('mongoose'),
passport = require('passport'),
User = mongoose.model('User');

core.server.controller.js文件提供mongoose和其他东西。然后我从../ errorHandler参数中删除了require,并将mongoose模型名称更改为我之前创建的名称。

但是当我想在控制台中启动这个应用程序时,我收到一个错误:

Error: Cannot find module 'errors.server.controller.js'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/Users/developer2/baca/app/controllers/core.server.controller.js:7:17)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at module.exports (/Users/developer2/baca/app/routes/core.server.routes.js:5:13)
at /Users/developer2/baca/config/express.js:118:35
at Array.forEach (native)
at module.exports (/Users/developer2/baca/config/express.js:117:49)
at Object.<anonymous> (/Users/developer2/baca/server.js:24:38)

那么我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

您需要errors.server.controller.js,但路径错误。

您可以使用相对于您的应用根目录的文件路径,也可以使用您要求的文件(core.server.controller.js):

解决方案1:相对于应用程序根目录的路径(由于MEAN.js在其他js文件中使用path使用需要,因此首选):

您可以使用节点path模块来帮助您:

var path = require('path),
    errorHandler = require(path.resolve('./modules/core/server/controllers/errors.server.controller.js'));

请注意,文件路径是相对于应用程序的根目录的,path模块将为您处理。

解决方案2:相对于当前文件的路径:

因为它们都在同一目录中:

var errorHandler = require('./errors.server.controller.js');