gpt4 book ai didi

node.js - NODE_PATH 被忽略或不工作

转载 作者:搜寻专家 更新时间:2023-10-31 22:42:39 26 4
gpt4 key购买 nike

我正在尝试在新服务器上运行我的 Node 应用程序,但我遇到了 NODE_PATH 环境变量的一些问题。该应用程序在我的本地计算机 (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' )。所以显然 Node 没有在我的项目目录中寻找模块。

我不确定为什么,因为我做了以下更改(在我的本地机器上工作得很好)。

  • 添加 export NODE_PATH=/development/nodeproject 到我的 ~/.bash_profile
  • 运行 source ~/.bash_profile
  • 如果我运行 env,我会看到 NODE_PATH=/development/nodeproject 列在那里
  • 在我的 app.js 中,如果我控制台记录 process.env.NODE_PATH 我得到 /development/framework(这应该输出一个数组而不是一个字符串吗?)

其他可能相关的信息:

  • 我在 Node v0.6.7 上
  • 我以 root (sudo su -) 身份执行所有这些操作

此时我不确定我还能做什么。任何帮助将不胜感激。

最佳答案

NODE_PATH 用于模块,不用于解决方案文件。尝试 module.paths.push("/development/nodeproject", "one/more/path");在任何 require() 调用之前。你真的应该为你的 Node 项目目录中的文件使用一个相对的要求,比如 require('./mod/core/models/Category')

关于node.js - NODE_PATH 被忽略或不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com