微信小程序后台搭建—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接口成功在小程序中可以使用


总结

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

相关推荐
小Mie不吃饭25 分钟前
Oracle vs MySQL 全面对比分析
数据库·mysql·oracle
扶尔魔ocy1 小时前
【linux C】在mysql中增加自定义的C动态库
linux·运维·mysql
kabcko2 小时前
CentOS安装Mysql
mysql·adb·centos
毕设源码-郭学长2 小时前
【开题答辩全过程】以 酒店预约微信小程序为例,包含答辩的问题和答案
微信小程序·小程序
ruleslol2 小时前
MySQL 工具使用指南
mysql
爱学java的ptt2 小时前
mysql的存储引擎
数据库·mysql
龘龍龙2 小时前
Python基础学习(十一)
python·学习·mysql
不屈的铝合金3 小时前
SQL 语言概述与数据库核心前置配置了解
数据库·sql·mysql·约束·sql 语句分类·字符集配置·校对规则
萧曵 丶3 小时前
可重复读(Repeatable Read)隔离级别下幻读产生的原因
数据库·sql·mysql
Antoine-zxt3 小时前
MySQL宕机日志迷局破解指南:从前台启动到精准排错
数据库·mysql·adb