NODE_PATH被忽略或不工作
我试图在新的服务器上运行我的节点应用程序,并与NODE_PATH环境variables有一些问题。 该应用程序在我的本地机器(OSX Lion)上正常工作,但不在服务器上(Redhat linux)。 当从我的项目目录/development/nodeproject
使用node app.js
启动我的应用程序时,出现以下错误:
Error: Cannot find module 'mod/core/models/Category' at Function._resolveFilename (module.js:334:11) at Function._load (module.js:279:25) at Module.require (module.js:357:17) at require (module.js:368:17) at /development/nodeproject/app.js:57:5 at Object.<anonymous> (/development/nodeproject/app.js:258:1) at Module._compile (module.js:432:26) at Object..js (module.js:450:10) at Module.load (module.js:351:31) at Function._load (module.js:310:12)
mod/core/models/Category
是我的app.js中的第一个require(),看起来像这样: var Category = require('mod/core/models/Category')
。 所以显然节点不在我的项目目录中寻找模块。
我不知道为什么,因为我做了以下更改(在我的本地机器上工作得很好)。
- 添加了
export NODE_PATH=/development/nodeproject
到我的〜/ .bash_profile - 运行
source ~/.bash_profile
- 如果我运行
env
NODE_PATH=/development/nodeproject
列出NODE_PATH=/development/nodeproject
- 在我的app.js如果我控制台日志
process.env.NODE_PATH
我得到/development/framework
(这应该输出一个数组而不是一个string?)
其他可能相关的信息:
- 我在节点v0.6.7上
- 我正在做所有这些(sudo su – )
在这一点上,我不知道我还能做什么。 任何帮助将不胜感激。
NODE_PATH用于模块,不用于解决scheme文件。 尝试使用module.paths.push(“/ development / nodeproject”,“one / more / path”); 在任何require()调用之前。 你真的应该使用require('./mod/core/models/Category/)“这样的相对需求来存放nodeproject目录中的文件
您正在查找的function已被删除。 使用node_modules
目录或像require('./mod/core/models/Category')
这样的相对需求。
这个答案有更多的信息: 尝试为vim设置jsctags时node.js的NODE_PATH错误