想必大家都有一个困扰,想要用微信小程序作为前端,但是后端不知道如何用node连接微信小程序,我最近也一直困扰许久,所以我就想用node写后端接口在连接微信小程序,记录一下学习笔记
前言
前端:微信小程序
后端:node+express+mysql
一、项目初始化
1.npm init -y 会生成一个package.json文件
2.打开项目终端并运行如下命令
npm install express --save //expressnpm i mysql //数据库npm i corsnpm i body-parsernpm i nodemon npm i axios
二、使用步骤
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接口成功在小程序中可以使用
总结
有什么不明白的可以发在评论区中大家一起讨论,有什么不对的地方欢迎大家指正,谢谢