【发布时间】:2022-01-26 18:35:45
【问题描述】:
您好,我是一名新编码员,但在尝试将新用户 (req) 添加到我为假银行拥有的用户的 json 文件中时遇到了麻烦。我对这些对象的类型以及如何从数据中访问它们感到更加困惑。我将不胜感激任何建议。目前我只能添加新帐户,但它会替换文件中的其他用户。所以现在我尝试在导入之前添加旧用户和新用户,但我不确定如何。我的主要困惑是如何从 fs.readfile 访问和操作“数据”
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。 -
fs.readFile()是异步且非阻塞的。调用它开始执行,然后立即进入其回调之外的行。然后在函数中的其他代码顶级代码执行后的某个时间调用回调。因此,您尝试在收到其内容之前使用content2。
标签: javascript node.js