gpt4 book ai didi

javascript - Node 需要绝对路径

转载 作者:IT老高 更新时间:2023-10-28 22:05:31 24 4
gpt4 key购买 nike

我有一个如下所示的目录:

-- app/
|- models/
|- user.js
|- config.json

我希望我的 user.js 文件需要 config.json。现在我正在使用 require('/config') 但这不起作用。我究竟做错了什么?我想避免使用 require('../config').

最佳答案

简单的答案是您没有做错任何事。根据一些研究,require 函数会寻找以下之一:

  • 一个核心模块,例如 fs
  • 您在 require 调用中指定的相对文件路径
  • 在调用 require 函数的文件的父目录中某处的 node_modules 文件夹中搜索适当命名的模块。

见:http://www.bennadel.com/blog/2169-Where-Does-Node-js-And-Require-Look-For-Modules-.htm和:http://nodejs.org/api/modules.html#loading_from_node_modules_Folders

以上两个资源都引用了修改 NODE_PATH 环境变量的能力,但是这听起来是非常糟糕的做法,并且至少会使您的代码的可移植性降低。它甚至可能不适用于像 config.json 这样的文件,因为尽管我从未这样做过,但我想更改 NODE_PATH 变量只会更改 require() 查找与真实模块相对应的 package.json 文件的地方。

总而言之,请参阅:How to make the require in node.js to be always relative to the root folder of the project?正如上面提到的 Piotr Kowalczuk。根据那篇文章,您有两个真正的选择:

  1. 使用相对文件路径。
  2. 使用 package.json 文件将所需资源打包为真正的模块并将其放入 node_modules 文件夹中。

最后,请记住,您正在尝试做的事情与您正在使用的程序的本质背道而驰。我认为这是一种情况,通过使用 Node 的颗粒并按照设计的意图使用相对文件路径,最终会让你的生活(以及你的合作者!)变得更轻松。

关于javascript - Node 需要绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21229944/

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