Ошибка типа: невозможно установить свойство '18dit075' из неопределенного в node js - PullRequest
0 голосов
/ 27 апреля 2020
var id = req.query.id;
var username = req.query.name;
var password = req.query.password;
console.log(req.query);

var data = {
        people:{
        }
    }

    data.people[id] = {
            username: username,
            password: password,
            degignation : 1
    }


let userjson = jsonfile.readFileSync(path.join(__dirname,'database','people'));
console.log(userjson);
userjson.people[id] = {
                username: username,
                password : password,
                degignation: 1
        }


jsonfile.writeFileSync(path.join(__dirname,'database','people'),userjson,{spaces:2});`

Я хочу записать js объект в json файл. но он показывает ошибку TypeError: Невозможно установить свойство '18dit075' из неопределенного в node js. обратите внимание мои люди. json файл пуст. Мне нужна помощь в express js. пожалуйста, помогите мне

1 Ответ

0 голосов
/ 27 апреля 2020

Вам нужно использовать JSON.stringify при записи в JSON. Вам также необходимо использовать .json в качестве расширения.

Еще лучше, вы можете использовать https://www.npmjs.com/package/write-json-file & https://www.npmjs.com/package/load-json-file, чтобы избежать незначительных ошибок :)

Вот как бы я это сделал:

const loadJsonFile = require('load-json-file');
const writeJsonFile = require('write-json-file');
const id = req.query.id
const username = req.query.name
const password = req.query.password
console.log(req.query)

(async () => {

    const data = {
        people: {},
    }

    data.people[id] = {
        username: username,
        password: password,
        degignation: 1,
    }

    const filePath = path.join(__dirname, 'database/people.json')
    let userjson = await loadJsonFile(filePath);
    console.log(userjson)
    userjson.people[id] = {
        name: username,
        password: password,
        degignation: 1,
    }

    await writeJsonFile(filePath, userjson, {indent: 2});

})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...