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

提示:学习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.mzph.cn/news/763967.shtml

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

相关文章

工业项目中你连DCS系统都没见过?

什么是DCS DCS,即分散控制系统,是一种用于监控和控制工业过程的系统。它通过连接多个控制器、传感器和执行器实现自动化控制,提高生产效率和安全性。在中国,随着工业化和自动化水平的提高,DCS技术得到了广泛应用和快速…

外包干了10天,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

SpringMVC 简介及入门级的快速搭建详细步骤

MVC 回顾 MVC,即Model-View-Controller(模型-视图-控制器)设计模式,是一种广泛应用于软件工程中,特别是Web应用开发中的架构模式。它将应用程序分为三个核心组件: Model(模型)&#…

PagePlug多条件查询方案

正确实现 使用Case When来编写查询条件 SELECT * FROM pc_ticket_tax_cloud WHERE 11 AND (CASE WHEN {{data_table.searchText ! }} THEN xsddm like {{data_table.searchText || ""}}%ELSE 11 END ) AND (CASE WHEN {{doc_code_input.text ! }} THEN doc_code li…

Git浅谈配置文件和免密登录

一、文章内容 简述git三种配置ssh免密登录以及遇见的问题git可忽略文件git remote 相关操作 二、Git三种配置 项目配置文件(局部):项目路径/.git/config 文件 git config --local user.name name git config --local user.email 123qq.cc全局配置文(所有用户): …

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

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

网络基础(一)初识

1、计算机网络背景 1.1、网络发展 1. 独立模式: 计算机之间相互独立; 2. 网络互联: 多台计算机连接在一起,完成数据共享; 3. 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起; 4. 广域网WAN: 将远隔千里的计算机都连在一起;…

【python】python汽车效能数据集—回归建模(源码+数据集)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

yaml 语法和在线解析工具

文章目录 在线解析工具1. 简介2. 语法规则3. 数据类型3.1 数组:3.2对象:3.3 标量3.4 复合结构3.5 锚点3.5.1 单个锚点3.5.6 多个锚点 3.6 引号 参考 在线解析工具 工具1 工具2 1. 简介 Yaml是一种可读性高的数据标记语言,Yaml文件是一种配…

45.i++和++i

目录 一.基本概念 二.区别 三.总结 四.视频教程 一.基本概念 i和i两者的作用都是自增加1。单独使用的话,i和i,效果都是一样的,就是ii1。 int main() {int i 0;i; } int main() {int i 0;i; } 最后的结果都是1。 二.区别 如上单独使…

SpringBoot—@ConditionalOnBean与@ConditionalOnClass

一、ConditionalOnBean概念 需求场景 比如下面一种场景,我在实例化People对象的时候,需要注入一个City对象。这个时候问题来了,如果city没有实例化,那么下面就会报空指针或者直接报错。 所以这里需求很简单,就是当前c…

就业班 第二阶段 2401--3.19 day4 主从复制

一、MySQL-Replication(主从复制) 1.1、MySQL Replication 主从复制(也称 AB 复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)…

MySQL面试题--最全面-索引

目录 一、索引 1.MySQL是如何让实现的索引机制? 2.InnoDB索引与MyISAM索引实现的区别是什么? 3.一个表中如果没有创建索引,那么还会创建B树吗? 4.说一下B树索引实现原理(数据结构) 5.聚簇索引与非聚簇…

弱电工程包括哪些工程?

​一、弱电工程的分部有哪些? 分为基础、主体、装饰工程、强电、弱电、消防、暖通、给排水工程,桩基、筏板、模板、钢筋、混凝土、砌体、粉刷、地坪等 二、弱电工程系统包括哪些? 弱电系统包括:闭路电视监控系统、防盗报警系统、门禁系统、电子巡更…

[小程序开发] 分包加载

一、介绍 分包加载是一种小程序的优化技术,将小程序不同功能的代码,分别打包成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载,在构建小程序分包项目时,构建会输出一个或多个分包&#xff…

python的stone音乐播放器的设计与实现flask-django-php-nodejs

该系统利用python语言、MySQL数据库,flask框架,结合目前流行的 B/S架构,将stone音乐播放器的各个方面都集中到数据库中,以便于用户的需要。该系统在确保系统稳定的前提下,能够实现多功能模块的设计和应用。该系统由管理…

python_BeautifulSoup爬取汽车评论数据

爬取的网站: 完整代码在文章末尾 https://koubei.16888.com/57233/0-0-0-2 使用方法: from bs4 import BeautifulSoup 拿到html后使用find_all()拿到文本数据,下图可见,数据标签为: content_text soup.find_all…

006——GenericTimer(基于liteos-a)

目录 Generic Timer介绍 1.1 硬件结构 1.1.1 System Counter特性 1. 两种访问方式 2. CP15寄存器 3. MemoryMapped寄存器 1.1.2 Timer特性 1.2 SystemCounter时钟源 1.3 使用方法 GenericTimer源码分析 1.2 源码分析 1.2.1 初始化 1.2.2 启动Timer 1.2.3 中断处理…

SQPSK

文章目录 [1]张显辉,沈国松.SQPSK调制体制在跟踪与数据中继卫星中的应用[J].遥测遥控,2007(S1):26-29.[2]保骏.QPSK、SQPSK信号解调相位模糊及其对Viterbi译码的影响[J].四川兵工学报,2011,32(03):53-55.[3]赵辉,严晓芳,张玉. 星载SQPSK高速调制系统的设计[C]//中国通信学会.20…

在服务器上训练faster-rcnn模型(pycharm和Termius)

本文主要介绍使用服务器训练模型的两种方式:pycharm(可视化界面友好)and终端,本人用的是macos系统,可能pycharm某些入口的位置不一样,本教程代码以faster-rcnn为例 准备工作: 1.知道自己所用服…