微信小程序后台搭建—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文件用来作为项目入口文件

代码如下(示例):

c 复制代码
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

c 复制代码
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接口成功在小程序中可以使用


总结

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

相关推荐
程序新视界6 小时前
MySQL中什么是回表查询,如何避免和优化?
mysql
文心快码BaiduComate10 小时前
用Comate Zulu开发一款微信小程序
前端·后端·微信小程序
汤姆Tom12 小时前
Node.js 版本管理、NPM 命令、与 NVM 完全指南
前端·npm·node.js
得物技术13 小时前
破解gh-ost变更导致MySQL表膨胀之谜|得物技术
数据库·后端·mysql
Java水解14 小时前
【MySQL】从零开始学习MySQL:基础与安装指南
后端·mysql
沢田纲吉18 小时前
🗄️ MySQL 表操作全面指南
数据库·后端·mysql
RoyLin2 天前
TypeScript设计模式:原型模式
前端·后端·node.js
Java水解2 天前
Mysql查看执行计划、explain关键字详解(超详细)
后端·mysql
RoyLin2 天前
TypeScript设计模式:单例模式
前端·后端·node.js
RoyLin2 天前
TypeScript设计模式:工厂方法模式
前端·后端·node.js