node學習之第一個介面,簡單的登入驗證
阿新 • • 發佈:2019-02-07
寫了第一node小程式。驗證登入。
對於一個新手來說思路是查出使用者表生成users集合。然後建立server接受post過來的user進行比對判斷是否登入成功。
程式碼如下:
//請求所需模組 var http = require("http"); var mysql = require("mysql"); var url = require("url"); var querystring = require("querystring"); var redis = require('redis'); //定義連線物件 var connection = mysql.createConnection({ host:"localhost", user:"root", password:"", database:"test", port:3306 }); //查詢userinfo表並賦予users物件。 connection.query('select * from userinfo;',function(error,rows,fields){ users = rows; }); //建立伺服器 http.createServer(function(req,res){ // 設定接收資料編碼格式為 UTF-8 req.setEncoding('utf-8'); //定義資料塊 var postData = ""; // 資料塊接收中 req.addListener("data", function (postDataChunk) { postData += postDataChunk; }); // 資料接收完畢,執行回撥函式 req.addListener("end", function () { //把接收到的字串轉為物件 var params = querystring.parse(postData); //驗證使用者名稱密碼 var resStr = login.checkLogin(params,users); setTimeout(function(){ //對客戶端返回資料 res.end(JSON.stringify(resStr)); },100); }); }).listen(6868); //定義users集合 var users = {}; //對function新增公共方法addmethod方法。此方法用來新增方法。新增方法如下 Function.prototype.addMethod = function(name,fn){ this[name] = fn; return this; } //定義login函式 var login = function(){}; //對login函式新增checkLogin方法。 login.addMethod("checkLogin",function(user,users){ for (var i = users.length - 1; i >= 0; i--) { if(user.username == users[i].username && user.password == users[i].password){ return true; } }; return false; });