关于使用 koa路由与mysql模块, ctx.body获取不到值的问题

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 关于使用 koa路由与mysql模块, ctx.body获取不到值的问题
var Koa = require('koa');
var Router = require('koa-router' );
var bodyParser = require('koa-bodyparser');
var mysql = require('mysql');
var app = new Koa();
var router = new Router();
app.use(bodyParser());
var connection = mysql.createConnection({
  host     : 'localhost',
  port:3306,
  user     : 'root',
  password : 'xxx',
  database : 'url'
});
connection.connect();
//第一类封装 ,一般用于不传递多个参数
const query = function (sql) {
    return new Promise((resolve, reject) => {
        connection.query(sql,  function (error, results) {
            if(error){
                reject(error);
            }else{
                resolve(results)
            }
        });
    })
}
//第二类封装 ,一般用于传递多个参数
const query1 = function (userStr,name,passwd,token1) {
    return new Promise((resolve, reject) => {
        connection.query(userStr,  function (error, result) {
            if(error){
                reject(error);
            }else{
                if (result.length > 0) {
                    json['message'] = '用户已经存在';
                    json['resultCode']= 1;
                } else {
                    json['message'] = '注册成功';
                    json['token'] = token1;
                    json['resultCode'] = 200;
                    var insertStr = `insert into login (username, password,token) values ("${name}", "${passwd}","${token1}")`;
                    console.log(insertStr)
                    connection.query(insertStr, function (err, res) {
                        if (err) throw err;
                    })
                }
                resolve(json)
            }
        });
    })
}
// 使用第一类封装
router.get( '/csdnurl', async(ctx, next) => {
  var sql = "select * from csdnurl";
    let results = await query(sql);
    ctx.body=results
});
// 使用第一类封装
router.post('/login', async (ctx, next) => {
    var name = ctx.request.body.username;
    var passwd = ctx.request.body.password;
    var userStr = `select username,password,token from login where username="${name}" and password="${passwd}"`;
    let results = await query(userStr);
    ctx.body = results
});
// 使用第二类封装
router.post('/register', async (ctx, next) => {
    var name = ctx.request.body.username;
    var passwd = ctx.request.body.password;
    var token1 = jwt.sign({
        username: name
    }, secretkey, {
        expiresIn: 60 * 8
    });
    var userStr = `select * from login where username="${name}"`;
    let results = await query1(userStr,name,passwd,token1);
    ctx.body = json
});


这里主要使用了 asyncawait 处理异步问题

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
关系型数据库 MySQL Python
pymysql模块,python与MySQL之间的交互
pymysql模块,python与MySQL之间的交互
|
8月前
|
安全 关系型数据库 MySQL
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
131 3
|
8月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
563 0
|
8月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
71 0
|
8月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)(下)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
57 0
|
8月前
|
JavaScript 关系型数据库 MySQL
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)(上)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
76 0
|
JavaScript 关系型数据库 MySQL
Node.js学习笔记----mysql模块
Node.js学习笔记----mysql模块
|
SQL 关系型数据库 MySQL
存储模块之mysql数据库
存储模块之mysql数据库
90 0
|
关系型数据库 MySQL 数据库
Python:mysql-connector-python模块对MySQL数据库进行增删改查
Python:mysql-connector-python模块对MySQL数据库进行增删改查
127 0
|
关系型数据库 MySQL 开发工具
Python:使用 mysqlsmom 模块实时同步MySQL数据到ElasticSearch
Python:使用 mysqlsmom 模块实时同步MySQL数据到ElasticSearch
163 0

热门文章

最新文章

推荐镜像

更多