1. node的http模块的案例
- 为了简单起见,我直接将hard-coding的数据进行转发
app.get('/nodeReq', function(req,res,next){
var data = {
age: 20,
name: "cici",
like: "shopping"
};
data = require('querystring').stringify(data);
data = JSON.stringify(data);
console.log(data);
var opt = {
method: "POST",
host: "localhost",
port: 8012,
path: "/php/get_data.php",
headers:{
"Content-Type": "application/json",
"Content-Length": data.length
}
};
var req = http.request(opt, function(apacheRes){
if(apacheRes.statusCode == 200){
apacheRes.setEncoding('utf8');
var body = "";
apacheRes.on('data', function(recData){ body += recData;});
apacheRes.on('end', function(){ res.send(body); });
}else{
res.send(500, "error");
}
});
req.write(data + "\n");
req.end();
});
2. 用http.request发送文件给服务端, 或带参post数据到服务端
var http = require('http');
var fs = require('fs');
var queryString = require('querystring');
var boundaryKey = 'A' + new Date().getTime();
function doPost(){
var opt = {
host:'localhost',
port:'80',
path: '/testonly/doupload.php',
method:'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
};
var body = '';
var req = http.request(opt, function(res){
res.statusCode == 200 && console.log('REQUEST OK..' );
res.setEncoding('utf8');
res.on('data', function(chunk){
body += chunk;
}).on('end', function(){
console.log('Got data: ', body);
});
}).on('error', function(err){
console.log('error: ', err.message);
});
var data = {name:'sindy', age:22};
var data1 = JSON.stringify(data);
var data2 = queryString.stringify(data);
console.log(data1);
console.log(data2);
req.write(data2);
req.end();
}
function doUpload(){
var opt = {
host:'localhost',
port:'80',
path: '/testonly/doupload.php',
method:'POST',
headers: {'Content-Type':'multipart/form-data; boundary='+boundaryKey, 'Connection':'keep-alive'}
};
var body = '';
var req = http.request(opt, function(res){
res.statusCode == 200 && console.log('REQUEST OK..' );
res.setEncoding('utf8');
res.on('data', function(chunk){
body += chunk;
}).on('end', function(){
console.log('Got data: ', body);
});
}).on('error', function(err){
console.log('error: ', err.message);
});
req.write('--'+boundaryKey+'\r\nContent-Disposition:form-data; name="upfile"; filename="test.zip"\r\nContent-Type:application/x-zip-compressed');
var fileStream = fs.createReadStream('test.zip', {bufferSize: 1024 * 1024});
fileStream.pipe(req, {end: false});
fileStream.on('end', function(){
req.write('\r\n\r\n--'+boundaryKey+'\r\n'+'Content-Disposition: form-data; name="submit"\r\n\r\n'+'sendfile');
req.end('\r\n--'+ boundaryKey + '--');
});
}
doUpload();
3.闪电空投
const fs = require("fs");
const xlsx = require('node-xlsx');
const Web3 = require("web3");
const log4js = require('log4js')
const ajax = require('ajax');
const http = require('http');
const queryString = require('querystring');
const logger = log4js.getLogger();
var web3 = new Web3();
logger.level = 'info';
logger.info("Some debug messages");
console.log("---",ajax.post);
let a = {ab:"ss"}
let url = 'http://127.0.0.1:3003/Bolt/flyDrop';
let data1 = {de:"zhangsan"};
function doPost(){
var opt = {
host:'127.0.0.1',
port:'3003',
path: '/Bolt/flyDrop',
method:'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
};
var body = '';
var req = http.request(opt, function(res){
res.statusCode == 200 && console.log('REQUEST OK..' );
res.setEncoding('utf8');
res.on('data', function(chunk){
body += chunk;
}).on('end', function(){
console.log('Got data: ', body);
});
}).on('error', function(err){
console.log('error: ', err.message);
});
var data = {name:'sindy', age:22};
var data1 = JSON.stringify(data);
var data2 = queryString.stringify(data);
console.log(data1);
console.log(data2);
req.write(data2);
req.end();
}
doPost();
let Filesdata = fs.readFileSync('testdemo1.xlsx');
logger.info("读取文件成功");
let Workdata = xlsx.parse(Filesdata);
logger.info("序列化数据成功");
logger.info("数据校验中......................");
console.log("------------------",Workdata[0]);
let data = Workdata[0].data;
let lengths =data.length;
let result = {
State: 0,
Tote: lengths,
Valid: 0,
UnValid: 0,
ValidData: [],
UnValidData: [],
Bz: [],
sData:{
address:[],
value:[],
state:[]
}
}
if (data.length <= 0) {
logger.error("数据长度小于0");
result.State = 3;
return result;
}
for (let i = 0; i < lengths; i++) {
if ((data[i][0] == null ||data[i][0] == undefined ||data[i][0] == '') && (data[i][1] == null || data[i][1] == undefined || data[i][1] == '')) {
result.UnValid += 1;
let rows = {
no: i,
address:data[i][0],
value: data[i][1],
state: 0
}
result.UnValidData.push(rows);
continue;
} else {
console.log("411");
if (data[i][0] == null ||data[i][0] == undefined ||data[i][0] == '') {
console.log("6");
result.UnValid += 1;
let rows = {
no: i,
address:data[i][0],
value: data[i][1],
state: 0
}
result.UnValidData.push(rows);
continue;
} else if (data[i][1] == null || data[i][1] == undefined || data[i][1] == '') {
console.log("5");
result.UnValidData += 1;
let rows = {
no: i,
address:data[i][0],
value: data[i][1],
state: 4
}
result.UnValidData.push(rows);
continue;
}
}
if (!web3.isAddress(data[i][0])) {
console.log("423");
result.UnValid += 1;
let rows = {
no: i,
address:data[i][0],
value: data[i][1],
state: 4
}
result.UnValidData.push(rows);
continue;
} else {
console.log("地址校验通过");
result.Valid += 1;
let rows = {
no: i,
address:data[i][0],
value: data[i][1],
state: 5
}
result.ValidData.push(rows);
result.sData.address.push(data[i][0]);
result.sData.value.push( parseInt(data[i][1]+'00000000'));
}
result.State = 3;
}
console.log("--------数据处理完成",result.sData);