gpt4 book ai didi

javascript - 如何使用 fs 在 node.js express 上正确地将数组写入文件?

转载 作者:搜寻专家 更新时间:2023-11-01 00:41:38 25 4
gpt4 key购买 nike

我正在尝试使用 node.js 和 i've used angular to achive this, you can inspect rest of the code from this question. 在文件中写入一个数组

当我发送一个数组时,文件看起来像这样:[object Object],...

当我在 JSON.stringify(myArr) 中发送我的数组时,它会正确写入文件,但数据会损坏并转换为对象。

json:

[{
"name" : "BigTitleLine1",
"content" : "APP TITLE 1"
}, {
"name" : "BigTitleLine2",
"content" : "APP TITLE 2"
}];

node.js:

var express     = require('express'),
fs = require('fs'),
bodyParser = require('body-parser'),
app = express();

app.use(express.static(__dirname));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.put('/update', function (req, res) {

console.log(req.body);
fs.writeFile("./json/test.json", req.body, function(err) {
res.json({ success: true });
});
// this returns true data on console
// but it writes [object Object],[object Object] to the file

var jsonData = JSON.stringify(req.body);
console.log(jsonData);
fs.writeFile("./json/test.json", jsonData, function(err) {
res.json({ success: true });
});
// this way writes well but
// it corrupts data and convert it to object:
//{"0":{"name":"BigTitleLine1","content":"APP TITLE 1"},"1":{"name":...}}
});

var server = app.listen(3000);

我正在尝试在文件中写入数组。

最佳答案

这应该可以正常工作:

var express     = require('express'),
fs = require('fs'),
bodyParser = require('body-parser'),
app = express();

app.use(express.static(__dirname));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.put('/update', function (req, res) {
// convert object to array
var arr = []
for (var index in req.body){
arr.push(req.body[index])
}
var jsonData = JSON.stringify(arr, null, 2);
console.log(jsonData);
fs.writeFile("./json/test.json", jsonData, function(err) {
res.json({ success: true });
});
});

var server = app.listen(3000);

关于javascript - 如何使用 fs 在 node.js express 上正确地将数组写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32271050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com