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.');
koa连接mysql_CentOS 环境 Node + Koa2 连接 MySQL (ECS系列三)相关推荐
- 数据库MYSQL学习系列三
数据库MYSQL学习系列三 三.MYSQL事务与存储引擎 3.1-数据库事务 什么是事务 一系列有序的数据库操作: o要么全部成功 o要么全部回退到操作前的状态 o中间状态对其他连接不可见 事务的 ...
- couchbase的使用(springboot连接couchbase,node.js连接couchbase)
网上的couchbase资料十分有限,这无疑给我们学习增加了难度. Couchbase是membase的升级版,membase与memcache是同一家公司出的,Couchbase包含了memcach ...
- js 连接mysql_关于Node.js 链接mysql超时处理(默认8小时)
备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法: 1.封装mysql.js var mysql = require('mysql');var connecti ...
- mysql超售_MySQL OOM 系列三 摆脱MySQL被Kill的厄运
前面两章,我们分析了Linux内存分配的策略以及Linux通过使用 OOM_Killer的机制解决了"超售"引起的风险,MySQL同其他的应用程序一样,在操作系统允许的范围内也是可 ...
- js 连接mysql_搭建node服务(二):操作MySQL
为了进行复杂信息的存储和查询,服务端系统往往需要数据库操作.数据库分为关系型数据库和非关系型数据库,关系型数据库有MySQL.Oracle.SQL Server等,非关系型数据库有Redis(常用来做 ...
- node.js连接MySQL操作及注意事项
node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑.前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是nod ...
- mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享
Mac环境下php操作mysql数据库的方法分享 今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们 ...
- mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享_PHP教程
Mac环境下php操作mysql数据库的方法分享 今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们 ...
- mysql连接编程环境_C++连接MySQL(一):环境配置和实例
摘要:MySQL API中提供了对C语言的支持,C++是兼容C语言的,那么只要稍加完善就可以让C++写出来的程序直接连接MySQL,并且编程和执行的效率都比较高. 1.为什么使用MySQL C API ...
最新文章
- while (true) 和 for (;;) 到底哪个更快?
- 解决idea中连接MySQL数据库后写SQL语句没有提示
- 中国滤清器制造行业竞争格局分析与发展战略规划研究报告2022年版
- hadoop join
- Java 中抽象类与接口
- 查询所有_学会DSUM函数,轻松搞定所有的数据查询与数据求和
- thymeleaf点击onclick事件
- linux系统移植到arm芯片难吗,Linux操作系统怎么移植到ARM平台?
- 通达信大资金进出指标公式
- flutter实战!一个Android应届生从上海离职,深度好文
- scaling之旅_【scaling】什么意思_英语scaling的翻译_音标_读音_用法_例句_在线翻译_有道词典...
- 五位本科生4个月造出芯片毕业!新的后续来了……
- HTML+CSS基础训练之实现一个“真实”的网页~
- ax.patches 表示什么?
- Win11商店无法加载页面怎么办 Win11应用商店打不开怎么办
- C语言 输入三个字符串,由小到大输出
- 6.百度地图例子讲解
- 简单的web工程接收消息text--微信企业号
- vue -- vue-cli webpack项目打包后自动压缩成zip文件
- spring boot 超市进销存系统源码