gpt4 book ai didi

javascript - Node 需要路径引用问题

转载 作者:行者123 更新时间:2023-11-30 12:38:55 30 4
gpt4 key购买 nike

我正在使用 Node 来运行一些 JS 任务。我正在使用 node require 来包含我编写的其他需要的文件。我试图包含的文件存在于同一目录中。这些文件没有什么特别之处;只是普通的旧 JavaScript。我没有将内容提供给浏览器或其他任何东西。我只是想运行 JS 逻辑。

我的目录结构:

    • 练习
      • ex1
        • FileLoader.js
        • FileOne.js

在我的 FileLoader.js 中,我单独运行了这些文件路径模式中的每一个。它们按照我尝试的顺序排列。

require('./exercises/ex1/FileOne.js'); // Attempt 1 path
require('FileOne.js'); // Attempt 2 path
require('/exercises/ex1/FileOne.js'); // Attempt 3 path
require('../../exercises/ex1/FileOne.js'); // Attempt 4 path

终端命令:

node ./exercises/ex1/ex1.js

结果:

  1. 尝试 1 - 错误:找不到模块“./exercises/ex1/FileOne.js”
  2. 尝试 2 - 错误:找不到模块“FileOne.js”
  3. 尝试 3 - 错误:找不到模块“/exercises/ex1/FileOne.js”
  4. 尝试 4 - 它成功了,尽管我没想到...... FML

所以最后一个有效,但所需的路径非常愚蠢。好像我的应用程序没 Root过的概念。我假设 Node 认为我的根是 ex1。但是我希望尝试 2 能够工作。我觉得我忽略了一些愚蠢的事情。

问题:

  • 在 require 中使用文件路径的正确方法是什么?
  • 有没有办法设置node的根目录?

谢谢,

乔丹

最佳答案

正确的语法是require("./FileOne.js")。如果文件放在 Node 路径中,第二种形式 (require('FileOne.js');) 将起作用。

要设置 Node 根,您可以使用 NODE_PATH。例如,使用

NODE_PATH=/path/to/your/project/root node ex1.js

您可以将 FileOne 引用为:

require("exercises/ex1/FileOne.js");

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

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