#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");
Приведенный выше код показывает эту ошибку Error: Cannot find module './localbase.json'
.
Файл импортируется server.js
следующим образом.
const lb = require('./db/localbase.js');
моя структура каталогов (извиняюсь, если мое дерево выглядит плохо)…
|- db
--- localbase.js
|- node_modules
|- public
server.js
package.json
Но если я помещу localbase.js где находится server.js значит, все в полном порядке.
Ответ №1:
итак, исправление действительно простое…
const fs = require("fs");
if(!fs.existsSync(__dirname "/localbase.json"))
fs.writeFileSync(__dirname "/localbase.json", "{}");
let database = require(__dirname "/localbase.json");
Итак, в основном, что я сделал, я импортировал относительный корневой каталог (где находится node_modules ), который вызывал эту ошибку.
Я думал, что using require('./localbase.json')
выберет каталог относительно server.js
, но это не так.
Итак, я узнал, что
require()
использует пути относительно корневого каталога.Это означает, что я должен использовать
__dirname
для импорта модулей внутри подкаталогов.