Express结合聚合数据获取快递信息

Express结合聚合数据获取快递信息

今天在项目中遇到获取物流信息的需求,于是查阅了快递100,快递鸟,聚合数据的文档,从零开始获取物流信息,这里主要介绍聚合数据

在前端界面的的开发中直接将其提供的API与测试地址使用Ajax进行请求,结果,毫无疑问的报错,跨域请求被拦截,报 500 的错。所以需要服务器中转一下,

聚合数据提供的请求地址:http://v.juhe.cn/exp/index

参数;key=你的key&com=公司名称&no=订单编号

Express结合聚合数据获取快递信息_第1张图片

查询这个接口支持的快递公司的com步骤:

第一步:
Express结合聚合数据获取快递信息_第2张图片

第二步

Express结合聚合数据获取快递信息_第3张图片

第三步

Express结合聚合数据获取快递信息_第4张图片

这样就获取到了。

聚合数据首次注册提供免费的100次使用。

用express搭建可以转发http请求的服务器

全局安装express-generator

$ npm install express-generator -g

创建一个命名为express的应用-安装依赖—开启服务器。

$ express Express
$ cd Express
$ npm install
$ npm start

这样一个应用的骨架 就搭建好了,

但是要处理http请求还需要安装一个包;

npm install request --save

修改routes下的index.js

var express = require('express');
var router = express.Router();
var request = require("request");

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('aaa', { title: 'Express' });

  request("http://v.juhe.cn/exp/index?key=51d27c76a89af4ce142aeea7fbaf8260&com=jd&no=73663098707",function (err,req,body) {
      if(!err && req.statusCode == 200){
        console.log(body)
          console.log(2)
      }
  })
});

module.exports = router;

request还可以发送post请求

request({
        url: url,
        method: "POST",
        json: true,
        headers: {
            "content-type": "application/json",
        },
        body: data
    }, function(error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body) // 请求成功的处理逻辑
        }

涉及到跨域的时候需要对express进行配置

//设置跨域访问
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1');
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

你可能感兴趣的:(网络学习日志,HTML,node)