我想添加新的代码到我的后端,这将把一些数据到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
文件提供猫鼬和其他东西。然后我从errorHandler
require
参数中删除了../
,并将猫鼬模型名称更改为我自己的,我之前创建的。
但是当我想在控制台启动这个应用程序时,我得到一个错误:
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)
那么我该如何解决这个问题呢?
您需要errors.server.controller.js
,但是路径错误。
你可以使用相对于你的应用程序根目录的文件路径,也可以使用你需要的文件(core.server.controller.js
):
解决方案1:相对于应用程序根目录的路径(为了一致性起见首选,因为MEAN.js在其他js文件中使用path
来表示require):
你可以使用节点path
模块来帮助你这样做:
var path = require('path),
errorHandler = require(path.resolve('./modules/core/server/controllers/errors.server.controller.js'));
请注意,文件路径是相对于你的应用程序的根目录,path
模块将为你处理。
方案二:相对于当前文件的路径:
因为它们都在同一个目录下:
var errorHandler = require('./errors.server.controller.js');