#javascript #node.js #json #express #push
#javascript #node.js #json #выразить #толкать
Вопрос:
В функции ниже моя цель — написать файл JSON с массивом данных (в строке). Но push()
функция, которая находится под комментариями, перестает выполнять код. Без этой строки кода все работает. Однако мне нужно использовать эту функцию. Что мне делать или, может быть, мне вообще следует использовать что-то другое?
router.put('/insert_Data', function (req, res, next) {
let body = req.body;
let data = [];
data.push(body['d']);
let jsonData = [];
for (let i = 0; i < data.length; i ) {
let from = Number(data[i].from);
let to = Number(data[i].to);
let type = Number(data[i].type);
let time = Number(data[i].time);
let price = Number(data[i].price);
let line = data[i].line;
let coin = data[i].coin;
from = from ? from : 0;
to = to ? to : 0;
type = type ? type : 0;
time = time ? time : 0;
price = price ? price : 0;
let item = `${from},${to},${type},${time},${price},${line},${coin}`;
console.log('item', item);
console.log('jsonData', jsonData);
//jsonData[i].push(item); // TODO: здесь не выполняется!
console.log('jsonData', jsonData);
}
console.log('after', jsonData);
jsonData = JSON.stringify(jsonData, null, 1);
// create new JSON
fs.writeFileSync('output.json', jsonData, function(err){
console.log(err.message);
});
res.end();
});
Я использую Postman для проверки этого кода. req.body
является ли следующий JSON:
{
"d": {
"from": 4444,
"to": 222,
"type": 322,
"time": 222222,
"price": "334",
"line": "333",
"coin": 333
}
}
router
переменная проста, это всего лишь express.js работает на порту 5000.
Комментарии:
1. Соловейчук, какую базу данных вы используете? Создайте модель, а затем легко с помощью async / await ПОМЕСТИТЬ или выполнить любой другой метод API.
2. Я не использую никакой базы данных. Просто записываю в новый файл json.
Ответ №1:
Вы можете только push
для массивов. То, что вы делаете, пытается push
в элементе массива, но массив пуст. Я предполагаю, что вы пытаетесь сделать, это jsonData[i] = item
или jsonData.push(item)
(возможно, первое, хотя).