Node.js 专用、本地(和特定于应用程序的)模块

Node.js 专用、本地(和特定于应用程序的)模块,node.js,express,Node.js,Express,我有一个Node.js应用程序,其结构如下: + |--应用程序/ ||--config.js ||--modules///MVC应用程序模块/组件。 ||--登录/ ||——注册/ |--lib///特定于应用程序的模块/库。 ||--auth/ ||——储存/ |--node_modules///第三方模块。 ||——快车/ ||--hjs/ |--公开的/ |--app.js |--package.json 需要来自lib/inside的模块的选项有哪些?例如,登录模块,但不必指定相对路

我有一个Node.js应用程序,其结构如下:

+
|--应用程序/
||--config.js
||--modules///MVC应用程序模块/组件。
||--登录/
||——注册/
|--lib///特定于应用程序的模块/库。
||--auth/
||——储存/
|--node_modules///第三方模块。
||——快车/
||--hjs/
|--公开的/
|--app.js
|--package.json
需要来自lib/inside的
模块的选项有哪些?例如,登录模块,但不必指定相对路径

//app/modules/login/index.js

var auth=require('../../../lib/auth');// 我可以看到两种可能的解决方案

  • 对你的模块进行修改
  • 安装您的模块。要执行此操作,请转到应用程序的根目录并键入:
  • npm安装/lib/storage


    您可以在启动app.js时通过执行上一个命令“动态”安装模块。

    设置
    $NODE\u PATH
    是一个选项吗?如果有其他方法,我宁愿不这样做,因为在Heroku等人身上没有设置它的选项。您可以从内部(比如)使用
    module.PATH.push(\uu dirname+'/../lib/')
    app/config.js
    ,虽然感觉有点脏…谢谢你花时间罗伯特:)不是
    模块。路径
    是前一段时间删除的吗?广告1)是那些真正的符号链接,这意味着我在lib/中的原始模块的更新将在我保存文件后立即可用,对吗?广告2)但我需要在每次开始时都这样做?这是真的。但别忘了符号链接在某些Windows版本上不起作用。第二种选择可能是您的最佳选择。是的,您需要在每次启动时安装模块,您可以制作一个bash脚本来安装它们。