加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[bigdata-107] node.js的安装并实现一个运营商报告的提交功能

发布时间:2020-12-14 03:27:13 所属栏目:大数据 来源:网络整理
导读:1. 下载 https://nodejs.org/dist/v6.11.0/node-v6.11.0-linux-x64.tar.xz 2. 安装 将node-v6.11.0-linux-x64.tar.xz解压缩到~/usr/node.js目录 在/etc/profile加上一行代码 export PATH=$PATH:/home/brian/usr/nodejs/node-v6.11.0-linux-x64/bin 然后执行
1. 下载
https://nodejs.org/dist/v6.11.0/node-v6.11.0-linux-x64.tar.xz


2. 安装
将node-v6.11.0-linux-x64.tar.xz解压缩到~/usr/node.js目录
在/etc/profile加上一行代码
export PATH=$PATH:/home/brian/usr/nodejs/node-v6.11.0-linux-x64/bin
然后执行 . /etc/profile
执行:
node -v
npm -v
都有输出,表明安装成功。




3.用node.js执行一个hello world的hello.js
----------------------------
const http = require('http');


const hostname = '127.0.0.1';
const port = 3000;


const server = http.createServer((req,res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type','text/plain');
  res.end('Hello Worldn');
});


server.listen(port,hostname,() => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
----------------------------

执行 node hello.js,然后在浏览器打开地址http://127.0.0.1:3000既可


4. 运营商报告demo,只实现了任务提交

var http = require('http');
var url = require('url');
var util = require('util');
//需要安装 npm install  crypto-js
var CryptoJS = require('crypto-js');

//系统分配的key,请用您的api_key替换该api_key
const api_key = '4115871262068366'
//系统分配的secret,请用您的api_secret替换该api_secret
const api_secret = '1G7TxxMmOqW7w4BkR6XxaRoNzWrLaR66'
//调用url地址
const api_url = 'http://api.tanzhishuju.com/api/gateway'
//http请求timeout为100秒
const HTTP_TIME_OUT = 100

var params = {
	//公共参数
	'apiKey':api_key,'version':'1.0.0',//业务参数
	'method': 'api.mobile.report','username':'1871798888',//待查用户手机号,请用新值替换
	'password':'778888',//待查用户手机号的运营商密码,请用新值替换
	'trueName':'陈XX',//待查用户的身份证,请用新值替换
	'idCard':'370502888888888888',//待查用户的身份证号码
	'userProvince':'上海',//待查用户所在省份/直辖市/自治区名称 这里需要一个允许值列表
	'userCity':'上海',//待查用户所在城市名称 这里需要一个允许值列表
	'userAddress':'兴路217号'//待查用户居住地详细地址,请用新值替换
}


//对密码进行base64编码
params['password'] = new Buffer(params['password']).toString('base64')

//对参数进行排序生成校验sign
var n = 0;
for (var i in params){
  n+=1;
}

var ps = new Array(n);
var i = 0;
for (var ii in params){
  ps[i] = ii;
  i += 1;
}
ps.sort();

//拼接字符串
var request_str = '';
for (var i in ps){
  request_str += ps[i]+'='+params[ps[i]]+'&';
}
//去掉最后一个&符号
request_str = request_str.slice(0,-1);
//给字符串增加api_secret
request_str += api_secret
//生成校验码
params['sign'] = CryptoJS.SHA1(request_str).toString();
console.log(params['sign']);

//http psot 提交任务
var params = require('querystring').stringify(params)
//提交参数
var options = {
	host: 'api.tanzhishuju.com',port: 80,path: '/api/gateway',method: 'post',headers: {
	'Content-Type': 'application/x-www-form-urlencoded','Content-Length': Buffer.byteLength(params)
	}
};

//使用http 发送
var req = http.request(options,function(res) {
	console.log('STATUS: ' + res.statusCode);
	console.log('HEADERS: ' + JSON.stringify(res.headers));

	//设置字符编码
	res.setEncoding('utf8');
	//返回数据流
	var _data="";

	//数据
	res.on('data',function (chunk) {
		_data+=chunk;
		console.log('BODY: ' + chunk);
	});

	// 结束回调
	res.on('end',function(){
		console.log("REBOAK:",_data);
	});
});

req.write(params);
req.end();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读