微信小程序后台搭建—node+mysql

想必大家都有一个困扰,想要用微信小程序作为前端,但是后端不知道如何用node连接微信小程序,我最近也一直困扰许久,所以我就想用node写后端接口在连接微信小程序,记录一下学习笔记


前言

 前端:微信小程序

后端:node+express+mysql


一、项目初始化

 1.npm init -y  会生成一个package.json文件

2.打开项目终端并运行如下命令 

npm install express --save //express

npm i mysql //数据库

npm i cors

npm i body-parser

npm i nodemon 

npm i axios

3.将如下安装成功后package.json文件会自动生成

二、使用步骤

1.创建index.js文件用来作为项目入口文件

代码如下(示例):

const express =require('express')
const app=express()
 
const bodyParser =require('body-parser')
app.use(bodyParser.json())
let cors = require('cors');
app.use(cors());
//响应数据中间件,一定要在路由前
app.use((req, res, next) => {
  // status 默认值为1,表示失败的情况
  // err 的值,可能是一个错误对象,也可能是一个错误的描述字符串
  res.cc = function (err, status = 1) {
    res.send({
      status,
      message: err instanceof Error ? err.message : err
    })
  }
  next()
})
 app.use((req, res, next) => { // 配置全局正确中间件
   res.zz = function (msg, data, status = 0) {
     res.send({
       status,
       message: msg instanceof Error ? msg.message : msg,
       data
     })  
   }
   next()
 })

// 配置跨域请求头
 
app.all("*", function (req, res, next) {
    res.header("Access-Control-Allow-Credentials", "true");
    res.header("Access-Control-Allow-Origin", "*"); //允许所有跨域请求
    res.setHeader("Access-Control-Allow-Headers", "Content-Type,Access-Token");
    res.header("Access-Control-Allow-Origin", req.headers.origin); // 设置允许来自哪里的跨域请求访问(值为*代表允许任何跨域请求,但是没有安全保证)
    res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS"); // 设置允许接收的请求类型
    res.header("Access-Control-Allow-Headers", "Content-Type,request-origin"); // 设置请求头中允许携带的参数
    next();
})

一定要记得导入路由模块和挂载
//导入路由 
const router=require('./router/goods.js')
app.use('/api',router)
app.listen(3004,( )=>{
    console.log('服务端启动成功,http://127.0.0.1:3004')
})
module.exports = app;

2.新建数据库文件

代码如下(示例):

config.js

const mysql=require('mysql');
//创建数据库连接对象
const db=mysql.createPool({
    host:'localhost',
    user:'root',
    password:'123456',//填写你的数据库密码
    database:'coach_sql',//你的数据库表
    multipleStatements:true
})

//将数据库向外共享
module.exports=db

 3.新建路由文件

分别创建两个文件

routers 中存放的是路由文件

代码示例如下

const express = require('express');
const router = express.Router();
const getGoods=require('../router_handler/goods.js')
router.get('/goods',getGoods.goodCat)

module.exports = router

router_handler 存放的是路由函数处理模块

代码示例如下

const db=require('../config.js')//导入数据库

const sql2 = "select * from goods ";//查询表所有数据
// 获取分类商品信息
exports.goodCat = (req, res) => {
  db.query(sql2, [req.query.cid], (err, results) => {
    if (err) return res.cc(err);
    if (results.length === 0) return res.cc("获取商品失败!");
    res.zz("获取商品成功!", results);
	// res.json({
	//       status: 0,
	//       message: '获取帖子信息列表成功!',
	//       postList: results,
	//     })
  });
};

4.终端运行

nodemon index.js 

如果运行正确将会显示查询出来的数据

5.apifox接口测试

如图显示说明接口测试成功

一定要配置apifox测试环境

6.小程序中测试接口

一定要将这个打开 

再打开终端查看接口数据

如若可以看到数据,说明你的node接口成功在小程序中可以使用


总结

 有什么不明白的可以发在评论区中大家一起讨论,有什么不对的地方欢迎大家指正,谢谢

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

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

相关文章

QT QML 练习8-Simple Transformations

简单的转换(Simple Transformations) 转换操作改变了一个对象的几何状态。QML元素对象通常能够被平移,旋转,缩放。下面我们将讲解这些简单的操作和一些更高级的用法。 我们先从一个简单的转换开始。用下面的场景作为我们学习的开始…

去掉CODESYS的用户管理密码

首先在成功连接PLC的情况下(CODESYS登录成功)情况下: 1. 2. 3. 4.CODESYS自动化应用进阶(二):如何安装使用CODESYS RTE及使用CODESYS RTE过程中常见的问题_哔哩哔哩_bilibili 视频在00:57&…

基于Spring Boot的企业客户管理系统

目录 前言 功能设计 系统实现 获取源码 博主主页:百成Java 往期系列:Spring Boot、SSM、JavaWeb、python、小程序 前言 本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作&am…

仿 Mac 个人网站开发 |项目复盘

一、前言 1.1 灵感来源 早年有幸看到国外大佬做的一个 基于 Web 的 Windows XP 桌面娱乐系统, 那时刚好有搭建一个个人博客的想法, 所以就想是否可以基于 WEB 实现一个仿 Mac UI 的个人博客, 以应用的形式来展示博客各个功能! 1.2 相关链接(求个 Star) 前端开源代码后端开源…

OpenAI 实时语音Realtime API接口申请: 助力开发者打造快速语音对话体验

OpenAI发布宣布推出Realtime API的公开测试版,所有付费开发者都可以在他们的应用中构建快速的语音对话体验。该API支持六种预设语音,类似于ChatGPT的高级语音模式,使自然的语音对话成为可能。 此外,Chat Completions API也新增了音…

【微服务】springboot远程docker进行debug调试使用详解

目录 一、前言 二、线上问题常用解决方案 2.1 微服务线上运行中常见的问题 2.2 微服务线上问题解决方案 2.3 远程debug概述 2.3.1 远程debug原理 2.3.2 远程debug优势 三、实验环境准备 3.1 搭建springboot工程 3.1.1 工程结构 3.1.2 引入基础依赖 3.1.3 添加配置文…

linux下使用mpi求自然数和

搭建MPI并行计算环境,编写 MPI程序,求和 1 23....1 0000。 要求: 1.使用100个进程; 2.进程0计算1 2...100, 进程1计算101 102... 200, ..... 进程99计算9901 9902... 10000; 3.调用计时函数,分别输出每个进程的计算时间; 4.需使用MPI集群通信函数和同…

【数据结构】时间、空间复杂度详解

大家有没有遇到过,为什么有些程序跑得飞快,而有些程序却慢得让人抓狂?我们可能都是这样认为的:他写的程序效率高等等,确实如此。但这背后隐藏着两个重要的概念:时间复杂度和空间复杂度。它们就像程序的“效…

MySQL的多表查询之联合查询

union联合查询 union用于合并两个或多个select语句的结果集 unnion将两个表上下拼在一起 要求: –两边select语句的字段数必须一致 –两边可以有不同数据类型的字段 –字段名默认按左边的表来设置 select column_name from table1 union select column_name from …

【Kubernets】配置类型资源 Etcd, Secret, ConfigMap

文章目录 所有资源概览Etcd详细说明一、基本概念二、主要功能三、架构与组件四、数据模型与操作五、安全与认证六、集群部署与管理 Secret详细说明一、Secret 的类型二、Secret 的创建三、Secret 的使用四、Secret 的更新与删除五、Secret 的安全性 ConfigMap详细说明一、Confi…

【分布式训练(5)】无法 kill PID?如何 kill 休眠中的 GPU 占用进程

【分布式训练 debug】VS Code Debug 技巧:launch.json实用参数 【分布式训练(2)】深入理解 DeepSpeed 的 ZeRO 内存优化策略 (三阶段的区别) 【分布式训练(3)】accelerator deepspeed debug 报错 “Timed out waiting…

华为OD机试 - 最大利润 - 贪心算法(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

光伏仿真系统的好处

现在的做光伏电站的项目,很多任务都是后置的,这样的话问题的暴露就会在每个时间段,光伏仿真系统的好处,就是在做每一步工作前,系统已经把每一步的工作都分配好了,有任何问题都可以提前知道, 获…

awk工具的基本使用

awk的作用从整体上来说就是用来分隔文本的。 默认是根据空白字符,将一行文件内容分隔成多部份。 常用选项: 使用-F的选项来指定awk工具使用的分隔符, 在awk内部有类似于$1,$2,$3这样的变量,$1代表第一部分,$2代表第…

密码管理APP系统规格说明书(初版)

这里写目录标题 1 引言1.1 背景1.2 目的1.3 范围 2 系统需求2.1 功能需求2.2 性能需求2.3 安全需求2.4 兼容性需求 3 系统设计3.1 总体架构3.1.1 系统架构概述3.1.2 技术选型 3.2 功能模块设计3.2.1 密码生成模块3.2.2 安全存储模块3.2.3 自动填充模块3.2.4 多平台支持模块3.2.…

开源商城系统crmeb phpstudy安装配置

BOSS让我最快时间部署一套开源商场系统,今天就以crmeb为例。 快速部署在linux中我会首选docker,因为我要在windows中部署,本文就选用phpstudy集成环境做了。 什么是crmeb 我从官网摘点: CRMEB产品与服务 CRMEB通过将CRM&#x…

SPI通信时序

前言: 作为Motorola的又一伟大发明的SPI总线通信协议,在理解和应用上也是十分复杂且难以理解,博主想通过这篇文章想把SPI的原理和应用大概讲一下,同时也是记录自己对于I2C的学习和理解。 SPI概述: SPI 是英语Serial P…

【C语言复习专题】函数调用

【C语言复习专题】函数调用 1.递归是什么?1.1递归的思想:1.2递归的限制条件 2.递归举例2.1eg1:求n的阶乘2.1.1 分析和代码实现2.1.2作图演示过程 2.2 eg2:顺序打印一个整数的每一位2.2.1分析 3.递归与迭代 1.递归是什么&#xff1…

2-124 基于matlab得结构稀疏字典实现SAR图像低秩重建

基于matlab得结构稀疏字典实现SAR图像低秩重建,通过K-SVD和W-KSVD结合OMP进行重建。K-SVD算法是一种字典学习算法,能够对字典进行优化,使其能够更好地表示训练样本集。W-KSVD算法是K-SVD算法的扩展,它能够利用权重信息对字典进行优…

华为---Super VLAN简介及示例配置

目录 1. Super VLAN技术产生背景 2. Super VLAN概念 3. Super VLAN应用场景 4. Super VLAN工作原理 5. Super-VLAN主要配置命令 6. Super-VLAN主要配置步骤 7. 示例配置 7.1 示例场景 7.2 网络拓扑 7.3 配置代码 7.4 代码解析 7.5 测试验证 1. Super VLAN技术产生背…