1. 程式人生 > >node學習之第一個介面,簡單的登入驗證

node學習之第一個介面,簡單的登入驗證

寫了第一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;
});