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错误