私のシナリオでは、SAP ビジネス データ (json 形式)、nodejs 中間層、およびブラウザー フロントエンドで構成されるフレームワークがあります。SAP ビジネスをフロントエンドにプルし、編集を行い、編集したデータを SAP サーバーに送り返すリアルタイム アプリケーションを作成する必要があります。
今、これを達成するために、モジュールを使用express
してhttp
います。Express(post request) を使用して sap バックエンドに接続し、json 形式でデータを取得し、フロントエンドで使用される URL として json データをホストしている http Web サーバーを埋め込みました。
ユーザーがフロントエンドで編集を行うと、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 -> フロントエンド) です。jsonp は、プッシュされた (変更された) json (フロントエンド -> フロントエンド) です。
response.send(jsonp) に変更された json ファイルを送信してもらいたいのですが、[] が返されます。つまり、その初期値です。さらに、変更された json を取得しているため、次回 sap でサーバー プログラムを再起動します。
助けてください!!