Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点需要路径引用问题_Javascript_Node.js_Require - Fatal编程技术网

Javascript 节点需要路径引用问题

Javascript 节点需要路径引用问题,javascript,node.js,require,Javascript,Node.js,Require,我正在使用node运行一些JS任务。我正在使用node require包含我编写的其他所需文件。我试图包含的文件存在于同一目录中。这些文件没有什么特别之处;只是简单的老JavaScript。我不会将内容提供给浏览器或任何东西。我只是想运行JS逻辑 我的目录结构: 根 练习 例1 FileLoader.js FileOne.js 在我的FileLoader.js中,我自己运行了这些文件路径模式中的每一个。它们符合我的尝试顺序 require('./exercises/ex1/Fi

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

我的目录结构:

    • 练习
      • 例1
        • 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-错误:找不到模块'./exerces/ex1/FileOne.js'
  • 尝试2-错误:找不到模块'FileOne.js'
  • 尝试3-错误:找不到模块“/exerces/ex1/FileOne.js”
  • 尝试4-尽管我没有想到。。。。FML
  • 最后一个可行,但所需的路径相当愚蠢。我的应用程序似乎没有根的概念。我假设节点认为我的根是ex1。但我希望尝试2能奏效。我觉得我忽略了一些愚蠢的事情

    问题:

    • 在需要时使用文件路径的正确方法是什么
    • 有没有办法用node设置根目录
    谢谢,


    Jordan

    正确的语法应该是
    require(“./FileOne.js”)
    。如果文件放在节点路径中,第二种形式(
    require('FileOne.js');
    )可以工作

    要设置节点根,可以使用
    node\u PATH
    。例如,使用

    NODE_PATH=/path/to/your/project/root node ex1.js
    
    您可以将FileOne引用为:

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

    也可以考虑使用<代码>检查是否有更好的洞察力。有时,在处理诸如

    fs
    之类的模块时,引用可能取决于从何处调用node命令来启动应用程序。因此
    \uuu dirname
    将是一个安全的使用选项

    在Node.js中,_dirname始终是当前正在执行的脚本所在的目录(请参见此)。换句话说,使用_dirname的脚本的目录

    相比之下。提供在终端窗口中运行节点命令的目录(即工作目录)。例外情况是当您使用时。使用require(),在这种情况下,它的行为类似于_dirname


    这有点让人困惑,在链接的答案中解释得很清楚。

    我认为正确的语法应该是
    require(“./FileOne.js”)…Ugg。你想把它作为一个答案吗?然后我可以给你评分。为了将来使用,此链接解释node.js如何搜索所需的: