zoukankan      html  css  js  c++  java
  • 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');
    
  • 相关阅读:
    [Misc ]bw 注入过程 150
    [Misc]2015 RCTF 日志记录
    [课堂笔记]铁三Linux取证
    [Web] 赛博地球杯 源码泄露
    ROPgadget 工具
    一步一步学ROP之linux x86 学习笔记
    Linux环境崩溃生成core文件以及调试
    文件头文件尾总结
    Linux (x86) Exploit Development Series 阅读笔记level1 Classic Stack Based Buffer Overflow
    Python 进制转换
  • 原文地址:https://www.cnblogs.com/piaoyi1997/p/13278803.html
Copyright © 2011-2022 走看看