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