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(要監聽的端口號);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM