1. 程式人生 > >Nodejs入門基礎(http、url、mysql模組)

Nodejs入門基礎(http、url、mysql模組)

Node.js特點:單執行緒,非阻塞IO,事件驅動
單執行緒執行任務,如遇到阻塞會掛起任務繼續執行其他,執行完其他再通過事件驅動處理阻塞的任務

node xxx.js 即可直接執行伺服器
第三方外掛需要安裝,在控制檯npm install mysql


案例
:登入頁面-註冊頁面訪問並輸出錄入資訊,router.js根據頁面反饋不同的資訊,並輸出資料庫內容

登入頁面
 

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title></title>
</head>
<body>
   <!--登入驗證-->
   <form action="http://localhost:3000/login">
      使用者名稱:<input type="text" name="userName"/><br>
      密碼:<input type="password" name="userPass"/><br>
      <input type="submit" value="提交"/><input type="reset" value="重置"/>
   </form>
</body>
</html>




註冊頁面:
 

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title></title>
</head>
<body>
   <!--註冊驗證-->
   <form action="http://localhost:3000/register">
      使用者名稱:<input type="text" name="userName"/><br>
      密碼:<input type="password" name="userPass"/><br>
      <input type="submit" value="提交"/><input type="reset" value="重置"/>
   </form>
</body>
</html>

 

router.js:

/*使用http模組*/
var http = require("http");
/*使用var模組*/
var url = require("url");
/*獲取資料庫模組*/
var mysql=require("mysql");
//資料庫資訊
var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'root',
    database : 'login'
});

connection.connect();
/*var sql ="select * from users";*/



/*獲取伺服器方法*/
http.createServer(
    function (request,response) {//相應引數
        response.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});//設定編碼格式
        var urlString = request.url;
        console.log(urlString);
        var dz = url.parse(urlString,true);
        console.log(dz);
        if (dz.pathname=="/login"){
            console.log("登入");
            let userName=dz.query.userName;
            let userPass=dz.query.userPass;
            connection.query(sql,function (err, result) {
                if(err){
                    console.log('[SELECT ERROR] - ',err.message);
                    return;
                }

                console.log('--------------------------SELECT----------------------------');
                console.log(result);
                console.log('------------------------------------------------------------\n\n');
            });
            response.write(userName);
            response.write(userPass);
        }
        
        if (dz.pathname=="/register"){
            console.log("註冊");
            let userName=dz.query.userName;
            let userPass=dz.query.userPass;
            let aa=[userName,userPass];
          /*  //方法一
            connection.query(`select * from users where users_id=\'${userName}\' and users_password=\'${userPass}\'`,function (err, result) {
                if(err){
                    console.log('[SELECT ERROR] - ',err.message);
                    return;
                }
                if (result.length>0){
                   console.log('--------------------------SELECT----------------------------');
                   console.log(result);
                   console.log('------------------------------------------------------------\n\n');
               }
            });*/

            //方法二,用資料和?代替引數
            connection.query("select * from users where users_id=? and users_password=?",aa,function (err, result) {
                if(err){
                    console.log('[SELECT ERROR] - ',err.message);
                    return;
                }
                if (result.length>0){
                    console.log('--------------------------SELECT----------------------------');
                    console.log(result);
                    console.log('------------------------------------------------------------\n\n');
                }
            });


        }
        response.end();
    }).listen(3000,"localhost");