koa2 mysql_node+koa2+mysql入门

1 构建项目

1.1 安装koa-generator

在终端输入:

$ npm install -g koa-generator

1.2 使用koa-generator生成koa2项目

在你的工作目录下,输入:

$ koa2 myKoa2

成功创建项目后,进入项目目录,并执行npm install命令

$ cd myKoa2

$ npm install

1.3 启动项目

在终端输入:

$ npm start

项目启动后,默认端口号是3000,在浏览器中运行可以得到下图的效果说明运行成功。

b4e36739d85a

2 链接mysql数据库

2.1 下载mysql

在项目路径输入npm install mysql --save下载mysql

2.2 配置mysql连接池

项目根目录新建文件夹controllers并创建defaultConfig.js和mysqlConfig.js文件。

//defaultConfig.js

const config = {

// 数据库配置

database: {

DATABASE: 'xxx', //数据库名称

USERNAME: 'xxx', //mysql用户名

PASSWORD: 'xxx', //mysql密码

PORT: '3306', //mysql端口号

HOST: 'xx.xxx.xx.xx' //服务器ip

}

}

module.exports = config

//mysqlConfig.js

var mysql = require('mysql');

var config = require('./defaultConfig');

var pool = mysql.createPool({

host: config.database.HOST,

user: config.database.USERNAME,

password: config.database.PASSWORD,

database: config.database.DATABASE

});

let allServices = {

query: function (sql, values) {

return new Promise((resolve, reject) => {

pool.getConnection(function (err, connection) {

if (err) {

reject(err)

} else {

connection.query(sql, values, (err, rows) => {

if (err) {

reject(err)

} else {

resolve(rows)

}

connection.release()

})

}

})

})

},

findUserData: function (name) {

let _sql = `select * from users where name="${name}";`

return allServices.query(_sql)

},

addUserData: (obj) => {

let _sql = "insert into users set name=?,pass=?,avator=?,moment=?;"

return allServices.query(_sql, obj)

},

}

module.exports = allServices;

之后在routes文件夹下users.js

const router = require('koa-router')()

const userService = require('../controllers/mysqlConfig');

router.prefix('/users')

//获取所有用户(GET请求)

router.get('/', async (ctx, next) => {

// console.log(ctx.session.username)

ctx.body = await userService.findAllUser();

})

// 增加用户(POST请求)

router.post('/add', async (ctx, next) => {

let arr = [];

arr.push(ctx.request.body['name']);

arr.push(ctx.request.body['pass']);

arr.push(ctx.request.body['auth']);

await userService.addUserData(arr)

.then((data) => {

let r = '';

if (data.affectedRows != 0) {

r = 'ok';

}

ctx.body = {

data: r

}

}).catch(() => {

ctx.body = {

data: 'err'

}

})

})

module.exports = router

随后在根目录下输入npm start启动项目,访问localhost:3000/users即可获取全部用户数据,同样用ajax的post请求方式操作localhost:3000/users/add即可向数据库里面添加用户数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值