node.js - 我可以要求 'require' 从我的应用程序根目录中搜索模块吗?

标签 node.js

我有一个带有目录的应用程序,这些目录中的文件通过 require 相互引用。我可能会移动它们,所以我讨厌使用相对路径。有没有办法使用相对于我的应用程序根目录的路径?

我有

/home/robert/src/application/
  |\ routes
  |    \ foo.js
  |\ models
       \ bar.js
// foo.js
var bar = require('../models/bar')
  , stuff = require('../other_stuff/stuff');

我要

/home/robert/src/application/
  |\ routes
  |    \ foo.js
  |\ models
       \ bar.js
// foo.js
var bar = require('/models/bar')
  , stuff = require('/other_stuff/stuff');

除了路径附加到 /home/robert/src 而不是自行评估。

最佳答案

很多人已经开始创建一个 index.js 文件,从一个位置导出所有模块。然后,模块只需要索引文件中的这些导出,而不是实际定义模块的位置。如果你移动过任何东西,你只需要更新这个文件。另外,它使创建代码覆盖率构建变得更加容易。

Index.js 最终会出现一堆像这样的行:

module.exports.app = process.env.EXPRESS_COV ?
    require('./lib-cov/app') : require('./lib/app');

基本上,这会根据变量使用标准模块或代码覆盖版本为任何需要它的模块导出app

关于node.js - 我可以要求 'require' 从我的应用程序根目录中搜索模块吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369538/

相关文章:

node.js - 未收到数据时将 'silent frames' 添加到 Node.js 流

javascript - Steam API 访问控制允许来源问题

javascript - 将两个 32 位整数转换为一个带符号的 64 位整数字符串

ios - 无法在 Node.JS 和 React-Native (Socket.IO) 之间建立连接

javascript - 将函数结果与 Chai 中的 API 进行比较?

javascript - 使用较短的数据库查询代码将数据插入 MySQL 数据库表

javascript - 解析从 Node 服务器 Spotify 返回的 json

node.js - NPM 安装在 loadRequestedDeps 上挂起

node.js - 使用 JSON.stringify() 和 JSON.parse() 无法获得正确的结果

node.js - Mac安装openssl,环境找不到