gpt4 book ai didi

javascript - angular2 http.post() 到本地 json 文件

转载 作者:搜寻专家 更新时间:2023-10-30 21:29:57 25 4
gpt4 key购买 nike

帮助不大?

我正在尝试将纯 JSON 写入到我项目的文件中,我的项目树如下所示:

src
->app
-->components
--->people.component.ts
--->(other irrelevant components)
-->services
--->people.service.ts
-->data
--->JSON.json
->(other irrelevant src files)

我的people.component.ts 中的代码只是用来调用和订阅我的people.service.ts 中的函数,传递 newPerson 属性,该属性是使用 angular2 magic 从 DOM 进行数据绑定(bind)的;这是 name.service.ts 中的函数:

public addPerson(newPerson) {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post('app/data/PEOPLE.json', newPerson, { header: headers })
.map(res => res.json())
}

我的目标是在 PEOPLE.json 中编写(如有必要,替换)newPerson 属性(或整个文件)。当然,当前的 addPerson() 函数会返回一个错误。

我也尝试过 put 方法,它的错误略有不同,但我还没有找到任何一种方法的解决方案。

我明确知道这不是我尝试放入 PEOPLE.json 文件的数据格式/类型的错误。

最佳答案

不幸的是,您不能使用客户端(浏览器)JavaScript 直接 PUT 或 POST 到本地文件系统上的文件。

考虑构建一个简单的服务器来处理 POST 请求。如果您最熟悉 JavaScript,请尝试使用 Node.js 进行 Express

// server.js
'use strict'

const bodyParser = require('body-parser');
const express = require('express');
const fs = require('fs');

const app = express()
app.use(bodyParser.json());

app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', 'http://localhost:8000');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
res.header('Access-Control-Allow-Methods', 'POST');
next();
});

app.post('/', (req, res) => {
console.log('Received request');
fs.writeFile('json.json', JSON.stringify(req.body), (err) => {
if (err) throw err;
console.log('File written to JSON.json');
res.send('File written to JSON.json')
})
});

app.listen(3000, ()=>{
console.log('Listening on port 3000. Post a file to http://localhost:3000 to save to /JSON.json');
});

关于javascript - angular2 http.post() 到本地 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42033357/

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