在我的场景中,我的框架包括SAP Business Data(以json格式),nodejs中间层和浏览器前端。我需要创建一个将SAP业务拉到前端的实时应用程序,进行编辑并将编辑后的数据发送回sap服务器。
现在,要实现这一点,我使用express
和http
模块。我使用express(post request)连接到sap后端并以json格式检索数据,并嵌入了一个http web服务器,它将json数据托管为前端使用的URL。
当用户在前端进行编辑时,我能够从httpServer实例响应中获得响应,但外部快递帖子响应返回之前我可以将httpResponse表单作为快速发布响应委托给浏览器
我包含了部分代码或插图:
app.post('/publish', auth, function (request, response) {
json = JSON.stringify(request.body);
//io.sockets.emit("SAP_Event", request.body);
http.createServer(function(req,res){
//var f = 'index.html';
if(res.url == '/favicon.ico'){ // To handle non-existant favicon request by the http client
res.writeHead(404,{'Content-Type' : 'text/plain'});
res.end('Couldn\'t locate the required resource');
return;
}
var headers = { 'Content-type' : 'application/json' ,
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Headers' : 'X-Requested-With,GET,Content-Type'};
res.writeHead(200,headers);
res.end(json);
//***********************************
if(req.method === "POST") {
var data = "";
req.on("data", function(chunk) {
data += chunk;
});
req.on("end", function() {
jsonp = qs.parse(data);
});
}
//***********************************
}).listen(8080);
response.send(jsonp);
});
注意: json是拉json(sap - > frontend) jsonp是推(修改)的json(前端 - >前端)
我希望response.send(jsonp)发送修改后的json文件,但是它返回[]即它的初始值,而且我得到修改过的json,下次在sap中重启服务器程序。
请帮助!!