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

news2024/11/26 5:37:37

想必大家都有一个困扰,想要用微信小程序作为前端,但是后端不知道如何用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接口成功在小程序中可以使用


总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux mqtt 服务记录

查看已连接的clientId 如果MQTT服务使用的是系统服务管理器(如systemd),你可以使用journalctl命令来查看服务的日志 journalctl -u mqtt.service 这里的mqtt.service是MQTT服务的名称,根据实际情况替换为你的服务名称&#xff…

element-plus组件之Upload(2.0)

接上篇 下面的属性就对应着回调函数,下面就一一进行介绍。 因为element-plus在封装upload组件时就自带了一个预览和删除的图标,只是没有方法实现,这里进行指明。 就是在图片墙列表中,自动就带了这两个图标和遮罩,下面…

论文笔记:Prototypical Verbalizer for Prompt-based Few-shot Tuning

论文来源:ACL 2022 论文地址:https://arxiv.org/pdf/2203.09770.pdfhttps://arxiv.org/pdf/2203.09770.pdf 论文代码:https://github.com/thunlp/OpenPrompthttps://github.com/thunlp/OpenPrompt Abstract 基于提示的预训练语言模型&#…

Windows 下 cocos2d-x-3.17.2 VS2017开发环境搭建

1.下载cocos2d-x-3.17.2 源码: Cocos2d-x - 成熟、轻量、开放的跨平台解决方案 2.下载Python2 Python 2.7.0 Release | Python.org 加入环境变量: 测试版本

用无人机视角,打开哀牢山!

哀牢山危险且神秘,使用无人机进行探索可以极大地提高安全性和效率。通过无人机的关键性能,将哀牢山的情况记录并传输出来 一、高清摄像与图像传输 高清摄像头:无人机通常搭载高分辨率的摄像头,能够捕捉到哀牢山细腻的自然景观和…

如何通过wos进行论文的他引的查找

本帖子主要介绍的是 如何通过wos进行论文的“他引量”的查找。 首先,对于一篇论文,在wos中进行查找的时候,一定要选择: 然后点进去搜索,点击 citations: 在返回的页面选择researcher profiles 一栏的 See all: 然后在…

Allan方差分析是否需要补充确定性误差

MEMS器件陀螺仪与加表存在确定性误差和随机误差,确定性误差可以通过转台标定,比较麻烦,也可以使用手动转动的方式,通过非线性优化的方式获取,github上已有开源程序包,可参见博文https://blog.csdn.net/chen…

使用DSPy优化提示词

使用DSPy优化提示词 🌐 前言 DSPy doc地址 DSPy github DSPy arxiv 在机器学习中,使用语言模型(LM)构建复杂系统常常很麻烦。传统方法需要一步步优化,每次调整都得重新整理,容易出错。而且,手动写提示词时,我们往往不知道改了以后会变好还是变坏,这让整个过程变得更…

Android Studio开发Kotlin项目中遇到的问题解决集

背景&#xff1a;Android Studio 2022.3.1 1.Unexpected tokens (use ; to separate expressions on the same line) 无法在同一行声明一个变量并实例化。 解决&#xff1a;分开 &#xff08;1&#xff09; var aaCo:Runoob<String>aaCoRunoob("aa") &…

基于springboot校园社团信息管理系统

校园社团信息管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了校园社团信息管理系统的开发全过程。通过分析校园社团信息管理系统管理的不足&#xff0c;创建了一个计算机管理校园社团信息管理系统的…

多元化外链策略如何最大化SEO效果?

只要观察过一些大网站都知道&#xff0c;单一的外链建设策略通常不足以支撑长期的排名提升。成功的网站都是有很多多元化的外链的&#xff0c;这样外链结构的复杂性和多样性就能确保&#xff0c;所以GPBGNBGMB的外链策略是目前效果最好的外链组合 根据市场数据&#xff0c;排名…

服务器停止响应是什么原因造成的?

“服务器停止响应”或“网页不可用”消息意味着通信中断。当您尝试访问 Web 应用或网站时&#xff0c;您的设备会向托管该应用或网站的远程 Web 服务器发送请求。然后&#xff0c;服务器会处理此请求并返回要显示的网页内容。但是&#xff0c;如果服务器遇到问题并且无法回复预…

java-vue304_springboot智慧旅游系统 w4aanb5e

目录 功能和技术介绍系统实现截图技术范围开发核心技术介绍&#xff1a;代码执行流程核心代码部分展示系统测试其他springboot项目推荐详细视频演示源码获取 功能和技术介绍 探索如何设计一个用户友好、响应迅速的系统界面&#xff0c;确保系统后端逻辑的高效和稳定性。研究如…

Fastgpt本地化部署 - 以MAC为例

1.认识fastgpt 2.私有化部署 MongoDB&#xff1a;用于存储除了向量外的各类数据PostgreSQL/Milvus&#xff1a;存储向量数据OneAPI: 聚合各类 AI API&#xff0c;支持多模型调用 &#xff08;任何模型问题&#xff0c;先自行通过 OneAPI 测试校验&#xff09; &#xff08;1&a…

基于vue框架的党建系统j9hzh(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;组织管理员,成员,通知公告,组织信息,组织成员,入党材料,会议信息,活动签到,消息通知,学习视频 开题报告内容 基于Vue框架的党建系统开题报告 一、研究背景 随着信息技术的飞速发展&#xff0c;党建工作作为党的建设的重要组成部分&am…

单脉冲阵列和差波束形成实现比幅测角法(MATLAB仿真)

单脉冲阵列和差波束形成实现比幅测角法&#xff08;MATLAB仿真&#xff09; 文章目录 前言一、和差波束形成二、比幅测角法原理三、MATLAB仿真四、MATLAB仿真代码(超详细)单脉冲阵列和差波束形成实现比幅测角法MATLAB仿真超详细代码 总结 前言 单脉冲雷达天线要求产生一个主瓣…

Mysql—高可用集群MHA

1:什么是MHA&#xff1f; MHA&#xff08;Master High Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切…

GitLab Runner 通过 Pipeline 流水线实现持续集成 CI

文章目录 1、基础环境2、安装 Docker3、安装 GitLab4、安装 JDK5、安装 Maven6、安装 GitLab Runner7、注册 GitLab Runner8、上传 GitLab9、配置 Pipeline 1、基础环境 本次演示搭建&#xff0c;我使用的是阿里云服务器&#xff0c;配置如下&#xff1a; 服务器1&#xff1a;…

web 0基础第一节 文本标签

这是一个html文件的基本结构 在vs code 中使用英文的 ! 可快捷设置这样的结构 <!-- --> 是在html写注释的结构 <!DOCTYPE html> <!--标识当前文档类型为html--> <html> …

由于找不到msvcp140.dll而陷入困境?从系统更新到文件修复的全方位应对策略

由于找不到msvcp140.dll&#xff0c;不少电脑用户陷入了困惑之中。在计算机的复杂生态系统里&#xff0c;dll&#xff08;动态链接库&#xff09;文件是一种共享的资源库&#xff0c;而msvcp140.dll更是与特定的编程环境和软件运行息息相关。它就像是一座桥梁&#xff0c;连接着…