mysql 数据路由_node-路由操作mysql数据库

node大部分方法都是异步的,在操作数据库方法后面紧接着输出结果,输出的结果只会为空值,使用promise及其方便的解决这个问题,接下来看看node如何使用路由来处理不同请求,进而操作mysql数据库

一、引入相关依赖

node中默认没有mysql,需要使用npm i mysql指令进行安装

const http = require('http');

const url = require('url');

const queryStr = require('querystring');

var mysql = require('mysql');

二、连接mysql数据库

配置本地mysqli数据库相关参数

var connection = mysql.createConnection({

host: 'localhost',*

user: 'root',*

password: '你的数据库密码',

*database: 'xxxx'

});

connection.connect();

三、使用promise async,await封装处理异步问题的函数

// Promise async,await解决异步问题

function fn(sql, data = []) {

return new Promise((success) => {

connection.query(sql, data, function (error, results) {

if (!error) {

success(results)

}

});

})

}

四、node启动服务

通过判断请求路径来给与请求不同的响应,调用promise处理异步问题

var obj = {};*

http.createServer(async (req, res) => {

res.writeHead(200, {*

'Content-Type': 'text/html; charset=utf-8'

});

// 解析请求路径以及参数

const { pathname, query } = url.parse(req.url);

if (pathname != '/favicon.ico') {*

switch (pathname) {

case '/':

var sql = "select * from user";

var result = await fn(sql);

obj = {

code: 1,

data: result

}

break;

case '/list':*

var data = queryStr.parse(query).tel;

console.log(data);*

*var sql = `select * from user where tel =${data}`;

var result = await fn(sql);

console.log(result);

obj = {

code: 2,

data: result

}*

break;

}

}

res.end(JSON.stringify(obj));

}).listen(10086)

console.log('http:localhost:10086');

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值