Я использую nodejs express 4.16.3 с body-parser 1.18.3
Я отправляю объект JSON через ajax спереди на мой сервер, чтобы сохранить его как файл .json.
Вот мой передний код:
function sendobj (datapack) {
console.log(JSON.stringify(datapack))
$.ajax({
url: '/save',
method: "POST",
data: datapack,
success: function(results) {
alert(results.status)
}
});
}
и вывод на консоль после запуска этой функции и вызов ajax
{"nametest":{
"lov":{"2":{"val":"15"}},
"gte":{"2":{"val":"9"}},
}}
На данный момент все в порядке - "lov" и "gte""являются объектами, оба с ключом" 2 ", как мне нужно.
Но на стороне сервера есть код моего приложения:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/save', async (req, res) => {
try {
console.log(req.body)
await fs.writeFile('output.json', JSON.stringify(req.body), function(err) {
if (err) {
res.send({
status: 'Error!'
})
return
}
res.send({
status: 'Saved!'
})
});
} catch (e) {
console.log(e)
}
});
Вывод консоли сервера:
{ nametest:
{ gte: [ { val: '9' } ],
lov: [ { val: '15' } ]
} }
output.json
{"nametest":{"gte":[{"val":"9"}],"lov":[{"val":"15"}]}}
Похоже, мои первичные объекты 'gte' и 'lov' преобразуются в массивы, и они теряют их ключи ..
Я что-то упустил внастройки моего приложения / ajax?