gpt4 book ai didi

javascript - 如何要求深层嵌套的 NodeJS 模块?

转载 作者:数据小太阳 更新时间:2023-10-29 05:29:49 25 4
gpt4 key购买 nike

我有以下应用程序结构:

application
|- config
|----- config.js
|- routes
|------ api
|-----------router.js
|- Application.js
|- package.json

在/routes/api/router.js 模块中,我需要 require/config/config.js 文件并执行以下操作:

require('../../config/config.js');

我发现上面的代码很丑,想把它做得更漂亮。此外,如果我将 /routes/api/router.js 移动到另一个文件夹,我必须重构所有要求。需要该模块的最佳实践是什么,是否可以从应用程序文件夹根目录中需要 config.js,如下所示:

require('/config/config.js');

谢谢。

最佳答案

有几种方法可以解决这个问题。一种是将所有共享代码(如 config.js)放在 node_modules 下的目录中(使用 lib 以防你想要config 以外的目录):

application
|- node_modules
|----- lib
|---------- config
|-------------- config.js
|- routes
|------ api
|-----------router.js
|- Application.js
|- package.json

那么您可以使用 require( 'lib/config/config.js' ) 来要求 config.js。

或者,您可以在 node_modules 中创建一个 lib 符号链接(symbolic link),并将其链接到应用程序目录结构中的 lib:

application
|- node_modules
|----- lib -> ../../lib
|- lib
|------ config
|---------- config.js
|- routes
|------ api
|-----------router.js
|- Application.js
|- package.json

不幸的是, Node 文档不鼓励使用另一种选择,即使用 NODE_PATH它允许您指定 Node 的 require() 算法应该查看的目录。按照与上面相同的 lib 模式,您可以:

application
|- lib
|------ config
|---------- config.js
|- routes
|------ api
|-----------router.js
|- Application.js
|- package.json

并设置 NODE_PATH 等于 $path_to_application/lib

更新

找到 this great discussion关于包括上述选项以及其他一些选项的主题。

关于javascript - 如何要求深层嵌套的 NodeJS 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108184/

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