Koa 搭建服务

新建一个文件夹 koa_server,进入后

cnpm i -S koa

会生成 node_modules 依赖包,以及 package.json

创建文件 server.js,并写入

const Koa = require('koa');

const app = new Koa();

app.use( async ( ctx ) => {

ctx.body = 'hello koa2'

})

app.listen(3000)

console.log('app running at port 3000.');

运行 node server.js即可,这是最简单的http服务。

在ecs安全组,提前开放 3000 端口访问权限。

浏览器中打开 localhost:3000 就能看到 koa 已经在运行。

然后可以加入中间件(middleware)

const Koa = require('koa');

const app = new Koa();

// logger

app.use(async (ctx, next)=>{

await next();

const rt = ctx.response.get('X-Response-Time');

console.log(`${ctx.method} ${ctx.url} - ${rt}`)

})

// x-response-time

app.use(async (ctx, next)=>{

const start = Date.now();

await next();

const ms = Date.now() - start;

ctx.set('X-Response-Time', `${ms}ms`)

})

app.use( async ( ctx ) => {

ctx.body = 'hello koa2'

})

app.listen(3000)

console.log('app running at port 3000.');

关于中间件,此处不再展开。

koa 相关内容,可参考 Koa 2

安装 MySQL 连接库

cnpm i -S mysql

创建文件 mysql/index.js

var mysql = require('mysql');

var connection = mysql.createConnection({

host : 'MySQL主机地址',

user : 'root',

password : 'MySQL登录密码',

database : 'MySQL数据库'

});

class Mysql {

query (param) {

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

// user 数据表中查询 user_name 为 param 的数据

connection.query(

`SELECT * from user WHERE user_name='${param}'`,

function (error, results, fields) {

if (error) {

return reject(error)

};

resolve(results)

});

})

}

}

module.exports = new Mysql()

这样的配置,可以短期连接,在实际开发中,mysql连接会经常掉线。在这里,引入连接池,改写如下:

var mysql = require('mysql');

var pool = mysql.createPool({

host : 'MySQL主机地址',

user : 'root',

password : 'MySQL登录密码',

database : 'MySQL数据库'

});

class Mysql {

connect(){

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

pool.getConnection((err, connection) => {

if (err) {

console.log("连接失败");

reject(err)

} else {

resolve(connection)

}

})

})

}

async query (param) {

let connection = await this.connect()

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

// user 数据表中查询 user_name 为 param 的数据

connection.query(`SELECT * from user WHERE user_name='${param}'`,(error, results)=>{

if (error) {

return reject(error)

};

resolve(results)

});

//释放

connection.release();

})

}

}

module.exports = new Mysql()

然后在 server.js 中引用

const Koa = require('koa');

const app = new Koa();

const mysql = require('./mysql/index');

// logger

app.use(async (ctx, next)=>{

await next();

const rt = ctx.response.get('X-Response-Time');

console.log(`${ctx.method} ${ctx.url} - ${rt}`)

})

// x-response-time

app.use(async (ctx, next)=>{

const start = Date.now();

await next();

const ms = Date.now() - start;

ctx.set('X-Response-Time', `${ms}ms`)

})

app.use(async (ctx) => {

let data = await mysql.query()

ctx.body = {

"code": 10,

"data": data,

"mesg": 'ok'

}

})

app.listen(3000)

console.log('app running at port 3000.');

koa连接mysql_CentOS 环境 Node + Koa2 连接 MySQL (ECS系列三)相关推荐

  1. 数据库MYSQL学习系列三

    数据库MYSQL学习系列三 三.MYSQL事务与存储引擎 3.1-数据库事务 什么是事务 一系列有序的数据库操作: o要么全部成功 o要么全部回退到操作前的状态 o中间状态对其他连接不可见 事务的 ...

  2. couchbase的使用(springboot连接couchbase,node.js连接couchbase)

    网上的couchbase资料十分有限,这无疑给我们学习增加了难度. Couchbase是membase的升级版,membase与memcache是同一家公司出的,Couchbase包含了memcach ...

  3. js 连接mysql_关于Node.js 链接mysql超时处理(默认8小时)

    备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法: 1.封装mysql.js var mysql = require('mysql');var connecti ...

  4. mysql超售_MySQL OOM 系列三 摆脱MySQL被Kill的厄运

    前面两章,我们分析了Linux内存分配的策略以及Linux通过使用 OOM_Killer的机制解决了"超售"引起的风险,MySQL同其他的应用程序一样,在操作系统允许的范围内也是可 ...

  5. js 连接mysql_搭建node服务(二):操作MySQL

    为了进行复杂信息的存储和查询,服务端系统往往需要数据库操作.数据库分为关系型数据库和非关系型数据库,关系型数据库有MySQL.Oracle.SQL Server等,非关系型数据库有Redis(常用来做 ...

  6. node.js连接MySQL操作及注意事项

    node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑.前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是nod ...

  7. mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享

    Mac环境下php操作mysql数据库的方法分享 今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们 ...

  8. mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享_PHP教程

    Mac环境下php操作mysql数据库的方法分享 今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们 ...

  9. mysql连接编程环境_C++连接MySQL(一):环境配置和实例

    摘要:MySQL API中提供了对C语言的支持,C++是兼容C语言的,那么只要稍加完善就可以让C++写出来的程序直接连接MySQL,并且编程和执行的效率都比较高. 1.为什么使用MySQL C API ...

最新文章

  1. while (true) 和 for (;;) 到底哪个更快?
  2. 解决idea中连接MySQL数据库后写SQL语句没有提示
  3. 中国滤清器制造行业竞争格局分析与发展战略规划研究报告2022年版
  4. hadoop join
  5. Java 中抽象类与接口
  6. 查询所有_学会DSUM函数,轻松搞定所有的数据查询与数据求和
  7. thymeleaf点击onclick事件
  8. linux系统移植到arm芯片难吗,Linux操作系统怎么移植到ARM平台?
  9. 通达信大资金进出指标公式
  10. flutter实战!一个Android应届生从上海离职,深度好文
  11. scaling之旅_【scaling】什么意思_英语scaling的翻译_音标_读音_用法_例句_在线翻译_有道词典...
  12. 五位本科生4个月造出芯片毕业!新的后续来了……
  13. HTML+CSS基础训练之实现一个“真实”的网页~
  14. ax.patches 表示什么?
  15. Win11商店无法加载页面怎么办 Win11应用商店打不开怎么办
  16. C语言 输入三个字符串,由小到大输出
  17. 6.百度地图例子讲解
  18. 简单的web工程接收消息text--微信企业号
  19. vue -- vue-cli webpack项目打包后自动压缩成zip文件
  20. spring boot 超市进销存系统源码

热门文章

  1. [MaxCompute MapReduce实践]通过简单瘦身,解决Dataworks 10M文件限制问题
  2. 简述 clearfix 的原理
  3. Win10系列:JavaScript访问文件和文件夹
  4. Linux6版本系统搭建Open***远程访问
  5. 搜索引擎广告过滤Chrome插件
  6. OWA登录页面显示为英文而不是中文
  7. Educational Codeforces Round 9 F. Magic Matrix 最小生成树
  8. linux第七章《档案与目录管理》重点回顾
  9. struts2上传图片的全过程
  10. Java并发 -- JMM