Node.js 如何使用express、nodejs和Angular CLI创建put请求以更新本地json文件
我试图通过单击按钮来更新本地JSON文件,以更新按钮的状态。目前,我能够获取JSON文件并读取所有按钮状态。下面我正在粘贴我的button_status.json文件Node.js 如何使用express、nodejs和Angular CLI创建put请求以更新本地json文件,node.js,angular,express,typescript,angular-cli,Node.js,Angular,Express,Typescript,Angular Cli,我试图通过单击按钮来更新本地JSON文件,以更新按钮的状态。目前,我能够获取JSON文件并读取所有按钮状态。下面我正在粘贴我的button_status.json文件 [ { "id": "0x11", "name": "cam1", "state": true }, { "id": "0x12", "name": "cam2", "state": true }, { "id": "0x13", "name": "cam3", "state": false }
[
{
"id": "0x11",
"name": "cam1",
"state": true
},
{
"id": "0x12",
"name": "cam2",
"state": true
},
{
"id": "0x13",
"name": "cam3",
"state": false
},
{
"id": "0x14",
"name": "cam4",
"state": false
},
{
"id": "0x15",
"name": "cam5",
"state": false
},
{
"id": "0x111",
"name": "cam6",
"state": false
}]
我正在使用express nodejs服务器读取button_status.json文件。下面我添加了我的快速获取功能
app.get('/getButtons', function (req, res) {
fs.readFile( __dirname + "/" + "button_status.json", 'utf8', function (err, data) {
console.log( data );
res.end( data );
});
});
调用get方法的角度服务代码
getButtonStatus() {
return this.http.get('http://localhost:3000/api/getButtons')
.map(res => res.json())
.concatMap(res => res)
.filter((x:any) => x.state === true)
.do(res=> console.log("res",res))
}
使用下面的代码,我将删除按钮状态为true的隐藏属性
this.buttonStatus = _mcxAppLayoutService.getButtonStatus()
.subscribe(value=>{
$('#'+value.name).removeAttr('hidden');
});
现在,当任何人想要使用某个按钮单击事件进行更改时,我想将JSON文件中的按钮状态更改为true/false。如何创建put请求以更新每个按钮的状态。有人能帮我做这件事吗。提前感谢您的帮助。检查。我想我能帮上忙you@ElmerDantas有没有可能在express中创建PUT请求来完成此任务?是的,有可能。很遗憾,我现在无法帮助您解决此问题。我会让一些链接,可能会帮助你除了一个我已经张贴:1-。2 - . “希望能有所帮助。”埃尔默丹塔斯感谢您的快速回复。我真的被任务缠住了。您发送给我的链接是来自angular 2的部分。这部分已经完成了。我想用express在nodejs中处理这个put请求。如果有人知道并准备好帮助我,这将是一个巨大的帮助。第一个链接是如何使用express创建一个路由来处理你的
放置。你需要做一些类似的事情:将你要更改的对象作为参数传递…在应用程序中。放置,你将阅读按钮\u status.json
(就像你已经做的那样)并使用var obj=JSON.parse(data)将数据
转换为JSON
这样你就有了可以迭代的obj
数组,找到与作为参数传递的id
相同的对象,更新它,并将obj
写入使用fs.writeFile
读取的文件中……你明白了吗?