你好,我是一名新手程序员,但是我在尝试将一个新用户(req)添加到我为虚假银行拥有的用户json文件中时遇到了麻烦。我更加困惑的是这些对象的类型以及如何从数据中访问它们。我希望能得到任何建议。目前我只能添加新账户,但是会替换掉文件中的其他用户。所以现在我正在尝试在导入之前添加旧用户和新用户,但是我不确定如何操作。我的主要困惑区域是如何访问和操作fs.readfile中的"data"。
app.post('/Account', (req, res,) =>
{
var queryParameter = req.query;
console.log(queryParameter.pin);
console.log(queryParameter.firstName);
console.log(queryParameter.lastName);
console.log(queryParameter.Balance);
console.log(queryParameter.email);
const tempAccount =
{
pin: Number(queryParameter.pin),
firstName: queryParameter.firstName.toString(),
lastName: queryParameter.lastName.toString(),
Balance: Number(queryParameter.Balance),
email: queryParameter.email.toString()
};
let content = [];
var data2 = tempAccount;//JSON.stringify(tempAccount, null, 2);*/
const fileName = "Routes/Users.json";
let content2 = [];
fs.readFile(fileName, 'utf8', function(err, data)
{
data = JSON.parse(data);
content2.push(JSON.stringify(data));
});
content.push(content2);
content.push(data2);
fs.writeFile(fileName, content, (err) =>
{
if (err) throw err;
console.log('Data written to file');
})
res.send(data);
});
Here is the json file:
{
"user": [
{
"pin": "1234",
"firstName": "Peter",
"lastName": "Parker",
"balance": "50",
"email": "spider@avenger.com"
},
{
"pin": "5678",
"firstName": "Steve",
"lastName": "Rogers",
"balance": "50",
"email": "captain@avenger.com"
},
{
"pin": "4321",
"firstName": "Tony",
"lastName": "Stark",
"balance": "1000",
"email": "iron@avenger.com"
}
]
}
fs.readFileSync
,但也要学习异步JavaScript。 - jarmodfs.readFile()
是异步且非阻塞的。调用它会启动其执行,然后立即转到其回调之后的行。稍后,在函数中其他顶级代码执行完毕后,回调将被调用。因此,在content2
接收其内容之前尝试使用它。 - jfriend00