koa连接mysql_CentOS 环境 Node + Koa2 连接 MySQL (ECS系列三)
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.');
相关文章:

Python CRC32 文件校验
binascii.crc32(s [,crc])返回CRC32校验。参数crc指定初始值用于循环。例如:Code>>> import binascii>>> crc binascii.crc32(spam)>>> binascii.crc32( and eggs, crc)739139840>>> binascii.crc32(spam and eggs)739139840C…

国家智慧城市战略实施 保温材料等建材万亿市场待挖掘
近年来,国家多部委联合发布《国家新型城镇化规划(2014—2020)》《关于促进智慧城市健康发展的指导意见》,提出到2020年建成一批特色鲜明的智慧城市。国家智慧城市建设与发展上升为国家战略。2014年中国智慧城市的市场规模达到800多亿元,其中不…

Matlab数据的可视化 -- 极坐标图及其与直角坐标图的转换
本篇微信图文主要介绍Matlab数据可视化方面的内容。polar、pol2cart、cart2pol

mysql 主从复制 性能_zabbix监控mysql各项性能,主从复制
######################################################监控mysql(默认监控模板不能用,再agentd.conf开启自定义key,自己编写脚本)在zabbix_agentd.conf尾部添加(注意相关文件路径,以及脚本权限等问题)vim zabbix_agentd.confUserParameter…

SQL Server基础知识之:设计和实现视图
设计和实现视图可谓是数据库物理设计中的一个非常重要的步骤。从一般意义上说,设计和实现视图应该遵循下面的一些建议和原则。 以下内容摘在文档,我对某些重点进行了补充说明(红色部分) 只能在当前数据库中创建视图。 但是&#x…
Matlab数据的可视化 -- 条形图
本篇微信图文主要介绍Matlab数据可视化方面的内容。bar、barh

全球SDN测试认证中心发布OpenDaylight测试报告
随着软件定义网络(Software Defined Network, SDN)商业部署速度地加快,关乎整个SDN 网络性能表现的控制平面核心组件——SDN 控制器也越来越成为网络用户关心的焦点。日前,天地互连-全球SDN测试认证中心(SDNCTC,www.sdnctc.com)正…

mysql可以做日期处理吗_mysql可以做日期处理吗
最近一个项目,需要写很多的sql语句。涉及到很多与时间相关的处理,现在做一下简单的总结。1.时间格式:在这个项目中,或许是由不同的人建立的数据库表结构吧,对时间的格式步统一,有的表中存储的long类型的时间…

大型网站采用什么系统架构保证性能稳定性
from http://www.bobd.cn/design/web/Theory/200904/31145.html 千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问…
Matlab数据的可视化 -- 饼图
本篇微信图文主要介绍Matlab数据可视化方面的内容。pie

Rushcrm:企业部署CRM系统做什么
现在很流行的一个词就是大数据,很多企业开始重视数据的开发利用。CRM在这样的环境背景下诞生了,但这并不意味着所有的企业都能很好的利用好CRM系统(客户关系管理系统)。CRM带来的效益是显而易见的,但是购置了CRM系统仅仅是第一步,…

slot没有毁灭的问题_解析flink之perjob模式下yn参数不生效问题
概要:0. 问题背景1. Stream Job的切分2. 计算资源的调度 & 任务的执行3. 最后的总结0. 问题背景:开始用flink处理流式作业的时候,用yarn-cluster模式提交作业的时候,脚本如下:$FLINK_BIN run -m yarn-cluster -yqu…

获取access中表的相关信息
就用到两条.net自带的获取数据库信息的语句 OleDbConnection con new OleDbConnection(connection); // OleDB数据库连接实例 // 获取数据库中表的相关信息DataTable dt con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "Table"…
Matlab数据的可视化 -- 茎干图
本篇微信图文主要介绍Matlab数据可视化方面的内容。stem

Wink发布Wink Hub2家庭物联网控制中心
智能家居主要厂商之一Wink宣布推出Wink Hub2家庭物联网控制中心,支持更多的家庭物联网产品,更广泛的互联互通,以及提供更好用的控制程序。Wink Hub2主要作用是连接第三方家庭物联网产品,并从一个集中的应用程序进行控制。 Wink Hu…

mysql repalication_MySQL主从复制的原理及配置方法(比较详细)
一、复制的原理MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。将主服务器的数据拷贝到从服务器的一个途径是…

贸易保护主义不能解决德国光伏企业的问题
针对德国媒体近期将该国光伏巨头SolarWorld宣布破产一事与中国相关联,甚至指责“中国盗走德国工作”的论调,中国驻德国大使馆经济商务参赞处公使衔参赞王卫东18日向记者表示,SolarWorld作为当初推动欧盟发起对华光伏产品“双反”措施的领头公…
Matlab数据的可视化 -- 平面多边形的着色
本篇微信图文主要介绍Matlab数据可视化方面的内容。fill

ASP.net session 使用总结(2)
Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息。举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个Key来判断用户是否登录,如果登录…

python re模块_Python re模块
正则表达式元字符说明. 匹配除换行符以外的任意字符^ 匹配字符串的开始$ 匹配字符串的结束[] 用来匹配一个指定的字符类别? 对于前一个字符字符重复0次到1次* 对于前一个字符重复0次到无穷次{} 对于前一个字符重复m次{m,n} 对前一个字符重复为m到n次\d 匹配数字,相…

国外优秀开源PHP建站程序一览
大量的PHP开源(开放源代码/Open Source)应用改变了这个世界,改变了互联网,以下我们总结从数据库到购物、博客等众多类型的开源PHP软件,供网站开发者们参考。 博客:WordPress WordPress是使用PHP开发的著名博…

《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一2.1 引言...
本节书摘来自华章计算机《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一书中的第2章,第2.1节,作者:[美] 德博拉诺兰(Deborah Nolan) 邓肯坦普朗(Duncan Temple Lang) 更多章…
Matlab数据的可视化 -- 三维特殊图形
本篇微信图文主要介绍Matlab数据可视化方面的内容。plot3,bar3,barh3,scatter3

baidumap api MySQL_百度地图API开发笔记一(基础篇)
什么是百度地图API?百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用。百度地图API包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。测试js API代码(…
Matlab数据的可视化 -- 三维网格图形
本篇微信图文主要介绍Matlab数据可视化方面的内容。mesh,meshc,meshz

我国网络安全人才培养缺口巨大
近日在武汉举行的国家网络安全宣传周的相关论坛上,我国网络安全人才培养缺口巨大成为与会专家热议的话题。来自中央和地方相关部门、高校研究者、互联网企业代表均认为,我国网络安全人才输出仍距国家、企业需求有较大差距。 去年6月ÿ…

如何写网站的robots.txt和meta name robots的配置
robots.txt基本介绍robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该…

mysql innodb_data_file_path_关于innodb_data_file_path设置
关于innodb_data_file_path设置启动Mysql时报错,无法正常启动,通过日志发有数据文件大小错误,日志如下截图:[ERROR] InnoDB: auto-extending data file /usr/local/mysql/data/ibdata1 is of a different size 768 pages (rounded…

BM提供支持云的量子计算平台,以加速创新
IBM研究院日前首次宣布公众可试用IBM量子处理器。从5月4日开始,IBM通过云服务,使所有有兴趣亲自实践的人们可以接触到量子处理器,帮助科学家和科研社区加速科技创新,并在该领域激发出更多的前沿应用。 这仅仅是量子计算时代的开始…
Matlab数据的可视化 -- 图形格式的设置
本篇微信图文主要介绍Matlab数据可视化方面的内容。title、x,y,zlabel、legend、title、axis、text等