Я создал node JS сервер для различных целей. Если клиентское приложение angular отправляет запрос на получение файла pdf, я хочу предоставить его с сервера nodejs. Но для других запросов, таких как post, delete, patch, get, я хочу обойти запрос к серверу prism, а затем вернуть ответ клиентской стороне.
При обходе запросов post и patch мне нужно для предоставления тела запроса серверу призмы. Как я могу добавить его в качестве параметра?
NodeJS код сервера:
var http = require('http');
var fs = require('fs');
var request = require('request');
http.createServer(function (req, res) {
if(req.method === 'OPTIONS'){
res.statusCode = 200;
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers", "*");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
res.setHeader("Access-Control-Allow-Credentials", true);
res.setHeader("Access-Control-Allow-Methods","*");
return res.end();
}
else{
if(req.url === '/pdf'){
fs.readFile('guide.pdf', function(err, data) {
res.writeHead(200, {'Content-Type': 'application/pdf'});
res.write(data);
return res.end();
});
}
else{
var method, r;
method = req.method.toLowerCase().replace('delete','del');
console.log(method);
switch (method) {
case "post":
r = request[method]({
uri: 'http://127.0.0.1:4010' + req.url,
body: ?
});
break;
case "get":
r = request[method]({
uri: 'http://127.0.0.1:4010' + req.url
});
break;
case "del":
r = request[method]({
uri: 'http://127.0.0.1:4010' + req.url
});
case "put":
case "patch":
console.log(req.data);
r = request[method]({
uri: 'http://127.0.0.1:4010' + req.url,
body: ?
});
break;
default:
return res.send("invalid method");
}
return req.pipe(r).pipe(res);
}
}
}).listen(8080);