Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 - Fatal编程技术网

Javascript 为什么此代码显示找不到模块错误?

Javascript 为什么此代码显示找不到模块错误?,javascript,node.js,Javascript,Node.js,在localbase.js内部 const fs = require("fs"); if(!fs.existsSync(__dirname + "/localbase.json")) fs.writeFileSync("./localbase.json", "{}"); let database = require("./localbase.json"); 上述代码显示此错误错误:找不

在localbase.js内部

const fs = require("fs");

if(!fs.existsSync(__dirname + "/localbase.json")) 
  fs.writeFileSync("./localbase.json", "{}");

let database = require("./localbase.json");
上述代码显示此错误
错误:找不到模块'./localbase.json'

文件导入到
server.js
中,如下所示

const lb = require('./db/localbase.js');
我的目录结构(如果我的树看起来不好,请道歉)


但是如果我把localbase.js放在server.js所在的位置,那就很好了。

所以修复非常简单

const fs = require("fs");

if(!fs.existsSync(__dirname + "/localbase.json")) 
  fs.writeFileSync(__dirname + "/localbase.json", "{}");

let database = require(__dirname + "/localbase.json");
因此,基本上我所做的是导入了导致该错误的根目录(node_模块所在的位置)

我认为使用
require('./localbase.json')
会选择相对于
server.js的目录,但不会

所以我学到的是
require()
使用相对于根目录的路径

这意味着我必须使用
\uu dirname
导入子目录中的模块


所以解决方法非常简单

const fs = require("fs");

if(!fs.existsSync(__dirname + "/localbase.json")) 
  fs.writeFileSync(__dirname + "/localbase.json", "{}");

let database = require(__dirname + "/localbase.json");
因此,基本上我所做的是导入了导致该错误的根目录(node_模块所在的位置)

我认为使用
require('./localbase.json')
会选择相对于
server.js的目录,但不会

所以我学到的是
require()
使用相对于根目录的路径

这意味着我必须使用
\uu dirname
导入子目录中的模块