Обновление записи файла JSON не работает в NodeJS

#javascript #node.js #json #file

Вопрос:

Я пытаюсь прочитать существующий файл JSON, обновить существующее значение и сохранить его обратно. Я получаю сообщение об ошибке ниже:

 node:internal/modules/cjs/loader:944
  throw err;
  ^

Error: Cannot find module 'src/myApp/test.json'
Require stack:
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:941:15)
    at Function.Module._load (node:internal/modules/cjs/loader:774:27)
    at Module.require (node:internal/modules/cjs/loader:1013:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at Module._compile (node:internal/modules/cjs/loader:1109:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1138:10)
    at Module.load (node:internal/modules/cjs/loader:989:32)
    at Function.Module._load (node:internal/modules/cjs/loader:829:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12) {
  code: 'MODULE_NOT_FOUND',
}
 

Пожалуйста, найдите код ниже —

Буду признателен, если кто-нибудь поможет мне решить эту проблему.

тест.json

 {
    "key": ""
}
 

updateJSON.js

 const fs = require('fs');
const fileName = 'src/myApp/test.json';
const file = require(fileName);
    
file.key = "new value";
    
fs.writeFile(fileName, JSON.stringify(file), function writeJSON(err) {
  if (err) return console.log(err);
  console.log(JSON.stringify(file));
  console.log('writing to '   fileName);
});
 

Комментарии:

1. В чем заключается ошибка, которую вы получаете ?

2. Я запустил точно такой же код, и значение записывается в файл

3. Обновил свой пост — пожалуйста, проверьте и помогите мне это исправить.

4. Проверьте ответ пользователя 5579894. Это должно помочь вам

Ответ №1:

Сообщение об ошибке Error: Cannot find module 'src/myApp/test.json' указывает на то, что Node.js не удается src/myApp/test.json правильно разрешить файл.

По умолчанию имя( src/myApp/test.json здесь), не начинающееся с ./ , будет распознано как module Node.js и будет устранено из native modules и node_modules , что приводит к ошибке.

Использование относительного пути, как ../src/myApp/test.json должно исправить это.

Ref: https://nodejs.org/api/modules.html#modules_require_id