重寫對應的get、put、post、delete請求;
var express = require('express');
var publicMethod = express.Router();
var http = require('http');
var api = express.Router();
var querystring = require('querystring');
var fs = require('fs');
var util = require('util');
var cookie = require('cookie');
var cookisParse = require('cookie-parser');
var config = require('../../config.js');
global.ipaddress = config.ipaddress;
global.port = config.port;
var obj = {
http_post: function(post_content, address, token, func) {
var opt_data = JSON.stringify(post_content);
var options = {
host: ipaddress,
port: port,
path: address,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-cn',
'Accept': '*/*',
"token": token || ''
}
};
var req = http.request(options, function(res) {
var chunks = '';
res.on('data', function(chunk) {
chunks += chunk;
});
res.on('end', function() {
func(chunks);
});
});
req.on('error', function(err) {
console.log('err:', err);
});
req.write(opt_data);
req.end();
},
http_put: function(put_content, address, token, func) {
var opt_data = JSON.stringify(put_content);
var options = {
host: ipaddress,
port: port,
path: address,
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-cn',
'Accept': '*/*',
"token": token || ''
}
};
var req = http.request(options, function(res) {
var chunks = '';
res.on('data', function(chunk) {
chunks += chunk;
});
res.on('end', function() {
func(chunks);
});
});
req.on('error', function(err) {
console.log('err:', err);
});
req.write(opt_data);
req.end();
},
http_get: function(get_content, address, token, func) {
var path = address;
if (get_content == "" || get_content == undefined) {
var path = address.trim();
} else {
var data = querystring.stringify(JSON.parse(get_content));
var path = address + "?" + data;
}
var options = {
hostname: ipaddress,
port: port,
path: path,
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-cn',
'Accept': '*/*',
"token": token || ''
}
};
var req = http.request(options, function(res) {
var chunks = '';
res.setEncoding('utf8');
res.on('data', function(chunk) {
chunks += chunk;
});
res.on('end', function() {
var data = null;
func(chunks.toString());
});
});
req.on('error', function(e) {
console.log('錯誤:' + e.message);
});
req.end();
},
http_delete: function(post_content, address, token, func) {
var opt_data = JSON.stringify(post_content);
var options = {
host: ipaddress,
port: port,
path: address,
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-cn',
'Accept': '*/*',
"token": token || ''
}
};
var req = http.request(options, function(res) {
var chunks = '';
res.on('data', function(chunk) {
chunks += chunk;
});
res.on('end', function() {
func(chunks);
});
});
req.on('error', function(err) {
console.log('err:', err);
});
req.write(opt_data);
req.end();
}
}
module.exports = obj;
node.js 接收頁面的ajax請求進行調用轉發請求
var express, model, pc, httpMethod, formidable, fs, xlsx, querystring;
express = require('express');
model = require('model');
httpMethod = require('./publicMethod');
pc = express.Router();
formidable = require('formidable');
fs = require('fs');
xlsx = require('node-xlsx');
var cookisParse = require('cookie-parser');
querystring = require('querystring');
function parseSessionId(req) {
var Cookies = {};
var parts = "";
if (req.headers.cookie != null) {
req.headers.cookie.split(';').forEach(l => {
parts = l.split('=');
Cookies[parts[0].trim()] = (parts[1] || '').trim();
});
}
return Cookies["sessionId"];
}
//post
pc.post('/postMethod', function(req, res) {
httpMethod.http_post(req.body.data, req.body.method, parseSessionId(req), function(data) {
res.send(data);
});
});
//get
pc.get('/getMethod', function(req, res) {
httpMethod.http_get(req.query.data, req.query.method, parseSessionId(req), function(data) {
res.send(data);
});
});
//delete
pc.delete('/deleteMethod', function(req, res) {
httpMethod.http_delete(req.body.data, req.body.method, parseSessionId(req), function(data) {
res.send(data);
});
});
//put
pc.put('/putMethod', function(req, res) {
httpMethod.http_put(req.body.data, req.body.method, parseSessionId(req), function(data) {
res.send(data);
});
});
//export
pc.get('/exportMethod', function(req, res) {
if (req.query.data) {
var query_data = querystring.stringify(JSON.parse(req.query.data));
var down_file = "http://" + ipaddress + ':' + port + req.query.method + '?' + query_data + '&sessionId=' + parseSessionId(req);
} else {
var down_file = "http://" + ipaddress + ':' + port + req.query.method + '?' + '&sessionId=' + parseSessionId(req);
}
res.send({
data: down_file
});
});