Nodejs 创建服务器并与MySQL连接

const http = require('http');
const mysql = require('mysql');
const url = require('url');
const util = require('util');

//连接数据库
const connection = mysql.createConnection({
    host:'---',
    user:'--',
    password:'--',
    database:'----'
});
connection.connect(function(){
    console.log('数据库连接成功!');
});

//request 请求信息 response 返回信息
http.createServer(function(request,response){
    //获得HTTP请求的method和url
    console.log(request.method+':'+request.url);
    if(request.method=="GET"&&request.url!="/favicon.ico"){
        let params = url.parse(request.url,true).query; //parse将字符串转成对象,request.url="/?id=1",true表示id:'1'
        response.writeHead(200,{'Access-Control-Allow-Origin':'*','Content-Type':'text/plain;charset=utf-8'});
        let serSql = '数据库查询语句';
        connection.query(serSql,function(err,result){
            if(err){
                console.log('[SELECT ERROR] - ',err.message);
                return;
            }
            console.log('查询结果:',result);
            response.end(JSON.stringify(result));//返回值必须是 string 或 buffer 类型
        });
    }
    else if(request.method=="POST"){
        // 定义一个空的数据变量来接受post请求的参数
        let postData = '';
        // 给req对象注册一个接收数据的事件
        request.on('data',function (chuck) {  
            /**data事件详解
             * 浏览器每发送一次数据包(chuck)是字符串类型的,该函数会调用一次。
             * 该函数会调用多次,调用的次数是由数据和网速限制的
             */
            // 每次发送的都数据都叠加到postData里面
            postData += chuck;
        })
        // 到post请求数据发完了之后会执行一个end事件,这个事件只执行一次
        request.on('end', function () {
            // 此时服务器成功接受了本次post请求的参数
            // post请求最终获取到的数据就是url协议组成结构中的query部分
            console.log(postData);
            // 使用querystring模块来解析post请求
            /**
             * querystring详解
             * 参数:要解析的字符串
             * 返回值:解析之后的对象。
             */
            let temp = JSON.parse(postData);
            //插入数据
            const addSqlParams = [?,?,?,?,?];// addSql 中 ? 对应的数据填在 addSqlParams 中
            const addSql = "insert into 表格名称 values(?,?,?,?,?)";
            connection.query(addSql,addSqlParams,function(err,result){
                if(err){
                    console.log('[INSERT ERROR] - ',err.message);
                    return;
                }
                console.log('INSERT ID:',result);
            });
        })
    }
}).listen(要监听的端口号);

 

转载于:https://www.cnblogs.com/ZLDJ-15-516/p/11197616.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值