express+mysql+vue,从零搭建一个商城管理系统15--快递查询(对接快递100)

news2024/11/18 12:21:45

提示:学习express,搭建管理系统

文章目录

  • 前言
  • 一、安装md5,axios
  • 二、新建config/logistics.js
  • 三、修改routes/order.js
  • 四、查询物流信息
  • 五、试错与误区
  • 总结


前言

需求:主要学习express,所以先写service部分
快递100API文档

一、安装md5,axios

npm install axios md5 --save-dev

在这里插入图片描述

二、新建config/logistics.js

config/logistics.js

//快递100
const axios = require('axios');
const md5 = require('md5');

//查询物流信息url
let url= 'https://poll.kuaidi100.com/poll/query.do';
//customer
let customer = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
//授权key
let key = 'xxxxxxxxx';

const logistics = {
    query:async (param)=>{
        //一定要把param转换成JSON,不然一直报签名错误
        let paramJson =  JSON.stringify(param);
        let sign = md5(paramJson+key+customer);
        sign = sign.toUpperCase();
        axios.defaults.headers.get['Content-Type'] = 'application/x-www-form-urlencoded';
        const res = await axios.get(url+`?customer=${customer}&sign=${sign}&param=${paramJson}`);
        return res.data
    }
}

module.exports = logistics;

在这里插入图片描述
customer,key通过 快递100企业信息获取

customer对应customer
key对应授权key
在这里插入图片描述

三、修改routes/order.js

routes/order.js

const OrderDao = require('../dao/order');
const logistics = require('../config/logistics');
const OrderRoutes = (router)=>{
    router.post('/order/addGoodsToOrder',async (req,res)=>{
        const result = await OrderDao.addGoodsToOrder(req.body);
        res.json(result);
    });
    router.get('/order/queryGoodsByUserIdFromOrder',async (req,res)=>{
        const result = await OrderDao.queryGoodsByUserIdFromOrder(req.query);
        res.json(result);
    });
    router.post('/order/queryOrderLogistics',async (req,res)=>{
        const result = await logistics.query(req.body);
        res.json(result);
    });
}
module.exports = OrderRoutes;

在这里插入图片描述

四、查询物流信息

url:http://localhost:1990/order/queryOrderLogistics
params:{
    {
    "com": "yuantong",
    "num": "xxxxxxxxxxx",
    "phone": "",
    "from": "",
    "to": "",
    "resultv2": "4",
    "show": "0",
    "order": "desc"
}

}

在这里插入图片描述

免费版本试用100次

在这里插入图片描述

五、试错与误区

在这里插入图片描述

用于签名的param和get请求url上的param
必须是JSON.stringify(param)的JSON格式,
不能是Object格式,不然一直报签名错误

总结

踩坑路漫漫长@~@

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1537674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测径仪:大小通吃的“直径判官”

嗨,大家好!今天我要给你们介绍一个超级厉害的玩意儿——在线测径仪!它可不是一般的测量工具,它是那个能让直径无处遁形的“直径判官”! 想象一下,有了在线测径仪,你就像是拥有了一双超级敏锐的“…

【Web】记录CISCN 2021 总决赛 ezj4va题目复现——AspectJWeaver

目录 前言 原理分析 step 0 step 1 EXP 前文:【Web】浅聊Java反序列化之AspectJWeaver——任意文件写入-CSDN博客 前言 这就是当年传说中的零解题嘛😭,快做🤮了 有了之前的经验,思路顺挺快的,中间不…

嵌入式Linux系统中控制显示屏的方法

第一:循环显示图片方法 第二:循环显示jpeg图片方法

手拉手Java爬虫HttpClient

JAVA爬虫 HttpClient HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 使用 HttpClient 的 6 个步骤 1. 创建 HttpClient 的实例 2…

深度学习新篇章:PyTorch在遥感地物分类的革命性应用

我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时…

四种最新算法(小龙虾优化算法COA、螳螂搜索算法MSA、红尾鹰算法RTH、霸王龙优化算法TROA)求解机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

Simulink无法求解/代数环/数值问题/求解器不收敛

运行仿真时出错,仿真终止 原因: Simulink cannot solve the algebraic loop containing Gain at time 1.0000000000000142 due to one of the following reasons: the model is ill-defined i.e., the system equations do not have a solution; or the nonlinear …

Linux:文件读取指令

Linux:文件读取指令 cat指令more指令less指令head指令 & tail指令grep指令 cat指令 cat指令用于查看目标文件的内容。 语法:cat [选项][文件] 比如直接使用cat读取一个文件: 可以看到,其直接在指令的下方,输出了t…

嵌入式开发--STM32G431RBTx-产生PWM

嵌入式开发–STM32G431RBTx-产生pwm 定时器工作原理 如图有反映stm32g431的定时器资源。 共10个定时器 定时器定时器类型个数TIM6,7基本定时器2TIM2,3,4全功能通用定时器3TIM15,16,17通用定时器(只有1或2个通道)3TI…

计算机二级大题

题目来源:计算机二级Python半个月抱佛脚大法(内呈上真题版) - 知乎 1.大题1 注意csv文件读取的处理 ls[] for line in f: ls.append(line.strip(\n).split(,)) 2. 大题2 第一问: #计算有效票张数 fopen("vote.txt",…

普发Pfeiffer分子泵TMH-U1001PC-1601PC安装使用维护说明

普发Pfeiffer分子泵TMH-U1001PC-1601PC安装使用维护说明

【十七】【算法分析与设计】前缀和(2)

238. 除自身以外数组的乘积 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#…

碳素光线疗法——动,植物 光育实验

碳素光线疗法——动,植物 光育实验 碳素光线疗法: 中西医、民间疗法融为一体,提高机体自身治愈力,免疫力,改善体质和保持健康,有助于疾病的预防和治疗的疗法。不吃药、不打针、不手术也能得健康&#xff0c…

【Grass Mining】教程

Grass 为用户提供了一种利用网络资源进行Mining的新途径。以下是一份简化的指南,帮助您轻松开始在 Grass 上的Mining活动。 开始之前:注册 Grass 账户 首先,访问 Grass 官方网站进行账户注册。如果遇到注册过程中出现的“失败”提示&#x…

Android Jetpack:简化开发、提高Android App质量的利器

Android Jetpack:简化开发、提高Android App质量的利器 1. Jetpack的概念和目标 Jetpack是一套库、工具和指南,旨在帮助开发者更轻松地编写高质量的应用程序。这些组件帮助开发者遵循最佳实践,减少样板代码的编写,并简化复杂的任…

2024年,抖音小店无货源怎么做?一篇全解!

大家好,我是电商糖果 无货源不能做了? 以后是不是要商家自己进货,囤货了? 无货源未来还有发展前景吗? ....... 这些问题,从2022年就有不少朋友开始问,一直到2024年。 糖果做无货源电商已经…

训练YOLOv9-S

1. YOLOv9-S网络结构 1.1 改前改后的网络结构(参数量、计算量)对比 修改前调用的yolo.py测试的yolov9.yaml的打印网络情况,包含参数量、计算量 修改后调用的yolo.py测试的yolov9.yaml的打印网络情况,包含参数量、计算量 1.2 …

MySQL关联查询如何优化

好久不见,关于这篇文章,我也是想了很久,还是决定写一篇文章,有很多同学问过 mysql 相关的问题,其实关联查询如何优化,首先我们要知道关联查询的原理是什么? 左连接 left join SELECT 字段列表…

单目测距那些事儿(上) _ 从MobileEye谈起

单目测距那些事儿(上) | 从MobileEye谈起 全面专业的自动驾驶学习资料:链接 前言 在ADAS领域,有个功能叫自适应巡航控制(Adaptive Cruise Control, ACC)。 ACC是一种纵向距离控制,具体包括发现目标车辆、判断目标车辆所在路径、测量相对本车的距离和速…

STM32之HAL开发——手动移植HAL库

HAL库移植步骤 创建目录 配置启动文件 在\Drivers\CMSIS\Device\ST\stm32f1xx\Source\Templates\ARM目录下,根据你的芯片型号选择对应的启动文件,不同容量大小的芯片,对应的启动文件也不一样。 注意:在HAL库中,不同容…