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


总结

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

相关推荐
滚雪球~21 分钟前
npm error code ETIMEDOUT
前端·npm·node.js
沙漏无语22 分钟前
npm : 无法加载文件 D:\Nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本
前端·npm·node.js
YUJIAN。1 小时前
使用uniapp开发微信小程序-框架搭建
微信小程序·小程序·uni-app
m0_748234521 小时前
前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)
前端·webpack·node.js
小林coding2 小时前
阿里云 Java 后端一面,什么难度?
java·后端·mysql·spring·阿里云
18号房客3 小时前
高级sql技巧进阶教程
大数据·数据库·数据仓库·sql·mysql·时序数据库·数据库架构
翔云1234564 小时前
MySQL purged gtid是如何生成和维护的
数据库·mysql
平行线也会相交6 小时前
云图库平台(三)——后端用户模块开发
数据库·spring boot·mysql·云图库平台
恒辉信达7 小时前
hhdb客户端介绍(53)
数据库·mysql·hhdb·数据库可视化界面客户端
Hello.Reader8 小时前
Redis热点数据管理全解析:从MySQL同步到高效缓存的完整解决方案
redis·mysql·缓存