探索Node.js和MySQL的强大组合(二):实战遇到的问题及解决思路

前言

心血来潮,做一个属于社团的官网,前端选手直接上手Node.js服务端,前后端分离开发。

问题

  1. 浏览器控制台401
  2. 后台日志info: <ref *1> Query {...}


状态码状态描述信息说明
200OK请求成功
201Created创建成功
400Bad Request请求参数有误
401Unauthorized未授权访问
403Forbidden访问被禁止
404Not Found资源不存在
500Internal Server Error服务器内部错误

 思路

  1. 401是未授权访问,但我填写的账号和密码已经确定是数据库表存在的了,所以是后端出错了
  2. 根据日志打印,可以定位到adminModel.js文件出错了

  • 可答案还是没有出来,我一行一行打印,也还是没测出来,最终是无意间瞟到一眼Promise,我好像在哪里写了..

  • webstorm有类型提示真好,也一般般,比如

  •  答案已经找到了,就是我最开始用yarn引入的Mysql包没有支持Promise
包名描述
mysqlmysql 是 Node.js 中使用最广泛的 MySQL 数据库驱动程序之一。它提供了与 MySQL 数据库的连接、查询和数据操作等功能,并支持回调函数和流式查询。但是,该包不直接支持 Promise。
mysql2mysql2 包是 mysql 的替代品,具有更好的性能和额外的功能。除了提供与 MySQL 数据库的连接、查询和数据操作等功能外,它还内置了对 Promise 的支持,使得可以使用async/await 进行异步查询操作。
mysql2/promisemysql2/Promise 实际上是对 mysql2 包的进一步封装,专门用于提供对 Promise 的支持。它使得可以使用 Promise 链式语法来执行异步查询,并更方便地处理数据库操作。
// db.js
const mysql = require('mysql2/promise'); // 换成这个就行
  • 再优化一下代码结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值