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

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

文章目录

  • 前言
  • 一、安装md5,axios,qs
  • 二、新建config/logistics.js
  • 三、修改routes/order.js
  • 四、添加商品到购物车
  • 总结


前言

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

一、安装md5,axios,qs

npm install axios qs md5 --save-dev

在这里插入图片描述

二、新建config/logistics.js

dao/order.js

const axios = require('axios');
const qs = require('qs');
const md5 = require('md5');

//商户ID 请在我的服务页面查看。
let EBusinessID = "xxxxxxxxx";
//加密私钥,由快递鸟提供
let ApiKey = "xxxxxxxxxxxxxxxxxxxxxxxxx";
//请求地址
let url = 'https://api.kdniao.com/api/dist'
//2-json
let DataType = "2";
// 请求指令类型  8002 快递查询API
let RequestType = "8002"

const logistics = {
    query:async (data)=>{
        const DataSign = Buffer.from(md5(JSON.stringify(data)+ApiKey)).toString('base64');
        axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
        const res = await axios.post(url,qs.stringify({
            RequestData:JSON.stringify(data),
            EBusinessID,
            RequestType,
            DataSign,
            DataType,
        }))
        console.log(res.data);
        return res.data
    }
}

module.exports = logistics;

在这里插入图片描述
EBusinessID,ApiKey 通过 快递鸟个人信息获取

EBusinessID对应用户ID
ApiKey对应API 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:{
    "ShipperCode":"YTO",
    "LogisticCode":"xxxxxxxxxxxxxxx",
    "OrderCode":""
}

在这里插入图片描述

免费版本试用为7天或100次

在这里插入图片描述

总结

踩坑路漫漫长@~@

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI人工智能培训讲师ChatGPT讲师叶梓培训简历及提纲ChatGPT等AI技术在医疗领域的应用

叶梓,上海交通大学计算机专业博士毕业,高级工程师。主研方向:数据挖掘、机器学习、人工智能。历任国内知名上市IT企业的AI技术总监、资深技术专家,市级行业大数据平台技术负责人。 长期负责城市信息化智能平台的建设工作&#xff…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:ListItemGroup)

该组件用来展示列表item分组,宽度默认充满List组件,必须配合List组件来使用。 说明: 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。该组件的父组件只能是List。 使用说明 当List…

云与云计算:从传统到云端的IT资源变革

云:从分散到集约,资源服务化的新模式 让我们先通过一个生活化的场景来理解“云”这一概念。几十年前,诸如农村地区的居民需要自给自足,比如在自家院子里打井取水,冬季烧煤取暖,一切满足自己生活需要的都要…

SwiftUI组件 - AsyncImage

SwiftUI组件-AsyncImage import SwiftUIstruct AsyncImageBootcamp: View {let url URL(string: "https://picsum.photos/200")var body: some View {/// Mark - iOS15 以后才有的方法ScrollView {AsyncImage(url: url, content: { returnImage inreturnImage.resiz…

STM32F103 CubeMX 使用USB生成鼠标设备

STM32F103 CubeMX 使用USB生成鼠标设备 1 配置cubeMX1.1配置外部晶振,配置debug口1.2 配置USB1.3 配置芯片的时钟1.4 生成工程 2. 编写代码2.1 添加申明2.2 main函数代码 1 配置cubeMX 1.1配置外部晶振,配置debug口 1.2 配置USB 1.3 配置芯片的时钟 需…

uniapp 开发出现这个 Error in onLoad hook: “SyntaxError: Unexpected end of JSON input“

uniapp 开发出现这个 Error in onLoad hook: “SyntaxError: Unexpected end of JSON input“,这个问题如何解决。 原因: 由于JSON.parse无法识别某些url中的特殊字符比如&等特殊符号造成的。 解决办法: 页面A(JSON.stringify传参&a…

YOLOV5 部署:基于web网页的目标检测(本地、云端均可)

1、前言 YOLOV5推理的代码很复杂,大多数都是要通过命令行传入参数进行推理,不仅麻烦而且小白不便使用。 本章介绍的web推理,仅仅需要十几行代码就能实现本地推理,并且只需要更改单个参数就可以很方便的部署云端,外网也可以随时的使用 之前文章介绍了QT的可视化推理界面,…

Flutter Inspector 视图调试工具突然不能用了

The embedded browser failed to load. Error: JCEF is not supported in this env or failed to initialize 1、在 Android Studio 的 Help 菜单中,找到 Find Action 2、搜索 boot runtime,找到「Choose Boot Java Runtime for the IDE」选项 3、在「…

计算机毕业设计-基于大数据技术下的高校舆情监测与分析

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、研究背景与意义1.1背景与意义1.2 研究内容 二、舆情监测与分析的关键技术2.1 robot协议对本设计的影响2.2 爬虫2.2.1 工作原理2.2.2 工作流程2.2.3 抓取策略2.3 scrapy架构2.3.1 scrapy:开源爬虫架…

【论文阅读笔记】Attention Is All You Need

1.论文介绍 Attention Is All You Need 2017年 NIPS transformer 开山之作 回顾一下经典,学不明白了 Paper Code 2. 摘要 显性序列转导模型基于包括编码器和解码器的复杂递归或卷积神经网络。性能最好的模型还通过注意力机制连接编码器和解码器。我们提出了一个新…

vacuum各种选项分析

1、vacuum和vacuum analyze和analyze的区别 我们加上verbose打印vacuum过程中的信息,可以发现: vacuum analyze过程中不但会vacuum表,还会收集表的统计信息,同时还会在表的年龄超过vacuum_freeze_table_age时,将表的年…

Tomcat Session集群---会话绑定

实验配置: 7-1安装Nginx 7-2和7-3安装Tomcat 1.配置7-1 1.做负载均衡,反向代理 [rootlocalhost ~]# vim /etc/nginx/nginx.conf17 http {18 upstream tomcat {19 server 192.168.91.102:8080;20 server 192.168.91.103:8080;2…

【iOS ARKit】PhysicsBodyComponent

在学习完 RealityKit 进行物理模拟的相关理论知识后,下面通过使用 PhysicsBodyComponent 组件进行物理模拟演示,主要代码如下所示,稍后对代码进行详细解析。 // // PhysicsBodyView.swift // ARKitDeamo // // Created by zhaoquan du on…

Docker安装蜜罐Hfish

前言 无意中发现公司的一台服务器被爆破,修改了密码,为了确定内网是否安装需要搭建一个蜜罐来看一下是否存在隐患。 如何安装Docker,请查看我另一篇文章 https://blog.csdn.net/l1677516854/article/details/136751211 一、拉取镜像 dock…

vscode创建文件夹跟在后面,怎么解决?

如果你遇到类似问题。 按照以下操作即可。

模拟量mV小信号隔离变送器

模拟量mV小信号隔离变送器:用于测量微弱小信号的小型仪表设备 一进一出模拟量mV小信号隔离变送器 ◆小体积,低成本,标准DIN35mm导轨安装方式 ◆三端隔离(输入、输出、工作电源间相互隔离) ◆高精度等级(0.1% F.S,0.2% F.S) ◆高线性度(0.1% F.S) ◆高隔离…

回到街头 - 数字时尚嘉年华:Web3的时尚未来,4月香港兰桂坊盛大启幕

随着区块链技术的不断发展,Web3世界正在逐渐改变我们的生活方式。作为这一变革的重要推动者,Vertex Labs荣幸地宣布,将在香港举办一场前所未有的“回到街头-数字时尚嘉年华”。这不仅是一场时尚与科技的完美结合,更是全球顶级IP和…

2024年中国AI服务器行业发展

环洋咨询Global Info Research的AI服务器市场调研报告提供AI服务器市场的基本概况,包括定义,分类,应用和产业链结构,同时还讨论发展政策和计划以及制造流程和成本结构,分析AI服务器市场的发展现状与未来市场趋势&#…

白话transformer(三):Q K V矩阵代码演示

在前面文章讲解了QKV矩阵的原理,属于比较主观的解释,下面用简单的代码再过一遍加深下印象。 B站视频 白话transformer(三) 1、生成数据 我们呢就使用一个句子来做一个测试, text1 "我喜欢的水果是橙子和苹果&…

HarmonyOS NEXT星河版——还是Android上套个壳吗?

这真的是我2024年听过最搞笑的话,就在前几天,居然还有人说鸿蒙OS就是安卓套个壳,简直无语! 你敢相信?就在前几天,我还听到有人说:鸿蒙os就是安卓上套一个壳。唉,我真是无语了。 哎&#xff0c…