初入koa2 -连接数据库(遇到的坑之一)

用的mysql,本来想用mongo,但是windows死活安装不成功,唉,同事说换系统是有道理的。

这里用到了一个模块 mysql-pro,用来连接数据库,新建一个config.js,它现在是这样的

const Client = require("mysql-pro");
const client = new Client({     
    mysql: {
          user: 'root',
          password: 'root',
          database: 'test',
          host: '127.0.0.1',
    }
}); 

module.exports = client;

然后引用,这里我在routes/index.js里引用,现在它是这样的

const router = require('koa-router')()
const sql = require('../sql/config')

router.post('/getPerson', async (ctx, next) => {
  let data = {
    name: ctx.request.body.name,
    createdAt: Date.now()
  };

  if(!data.name) return;
 // 注意这里,因为是异步,所以要这样写才可以取到值。
  var tmp = await sql.query("select * from _mysql_peoples_info where name = ?;", [data.name]).then(function(result) {
    console.log(result);
    return result;
  }, function(error){
    return -1;
  });
   
   ctx.body = tmp;
})

数据库是这样的

页面现在是这样的

一个简单的查询接口搞定,数据库返回值哪里搞一2个小时,异步编程让人又爱又恨

推荐一个比较不错的参考教程 https://chenshenhai.github.io/koa2-note/

 

转载于:https://www.cnblogs.com/SharkChilli/p/8087349.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,你可以使用koa2框架与mysql2库连接和操作数据库。下面是一个简单的示例: 首先,你需要安装所需的依赖: ``` npm install koa koa-router koa-bodyparser mysql2 ``` 然后,在你的项目中创建一个数据库连接配置文件(比如config.js),并填写数据库的相关信息: ```javascript // config.js module.exports = { database: 'your_database_name', username: 'your_username', password: 'your_password', host: 'your_host', port: 'your_port' }; ``` 接下来,创建一个数据库连接池并导出供其他模块使用: ```javascript // db.js const mysql = require('mysql2/promise'); const config = require('./config.js'); const pool = mysql.createPool({ host: config.host, port: config.port, user: config.username, password: config.password, database: config.database, connectionLimit: 10 // 可以根据需要进行调整 }); module.exports = pool; ``` 最后,在你的路由文件中使用数据库连接池来执行查询和操作: ```javascript // routes.js const Router = require('koa-router'); const pool = require('./db.js'); const router = new Router(); router.get('/users', async (ctx) => { try { const [rows] = await pool.query('SELECT * FROM users'); ctx.body = rows; } catch (err) { console.error(err); ctx.status = 500; ctx.body = 'Error occurred while fetching users'; } }); // 其他路由和操作 module.exports = router; ``` 这只是一个简单的示例,你可以根据自己的需求进行更复杂的数据库操作。记得在需要使用数据库连接的地方引入连接池,并根据需要执行查询、插入、更新等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值