node实现的一个登陆页面
2013-11-13 21:30
344 查看
1. why node
node最大的特点是高并发,吞吐量大,采用事件驱动,单线程,以及异步IO。我主要是想利用node-webkit中的web界面来实现桌面程序。
2. 登陆系统
(1) 实现一个简单登陆系统,功能为服务器中的合法用户才能登陆,不容许注册。数据存在内存中。
2. 改进代码,使用mysql来存储用户数据
3. 使用EJS模板
node最大的特点是高并发,吞吐量大,采用事件驱动,单线程,以及异步IO。我主要是想利用node-webkit中的web界面来实现桌面程序。
2. 登陆系统
(1) 实现一个简单登陆系统,功能为服务器中的合法用户才能登陆,不容许注册。数据存在内存中。
var http = require('http'); var users = []; users['lcy'] = '123'; users['lcy1'] = '321'; var server = http.createServer(function(req,res) { if('/' == req.url) { switch(req.method) { case 'GET': show(res); break; case 'POST': login(req,res); break; } } }); server.listen(3000); function show(res) { var html = '<form method="post" action="/">' + '<label for="username">Username</label>' + '<input type="text" id="username" name="username"/>' + '<label for="pwd">Password</label>' + '<input type="text" id="pwd" name="pwd"/>' + '<input type="submit" value="submit"/>' + '</form>' ; res.setHeader('Content-Type', 'text/html'); res.setHeader('Content-Length', Buffer.byteLength(html)); res.end(html); } var qs = require('querystring'); function login(req,res) { var body = ''; req.setEncoding('utf-8'); req.on('data',function(chunk){body += chunk}); req.on('end',function(){ var obj = qs.parse(body); if(users[obj.username] == obj.pwd) { goForum(obj.username,res); return; } goError(res); }); } function goForum(name,res) { var html = '<h1>Welcome ' + name + '!</h1>'; res.setHeader('Content-Type', 'text/html'); res.setHeader('Content-Length', Buffer.byteLength(html)); res.end(html); } function goError(res) { var html = '<script>alert("user is not exist!")</script>' + '<form method="post" action="/">' + '<label for="username">Username</label>' + '<input type="text" id="username" name="username"/>' + '<label for="pwd">Password</label>' + '<input type="text" id="pwd" name="pwd"/>' + '<input type="submit" value="submit"/>' + '</form>'; res.setHeader('Content-Type', 'text/html'); res.setHeader('Content-Length', Buffer.byteLength(html)); res.end(html); }
2. 改进代码,使用mysql来存储用户数据
mysql = require('mysql'); var users = []; var db = mysql.createConnection( { host : '127.0.0.1', user : 'root', password : '123456', database : 'users' } ); var query = 'select * from user'; db.query(query,function(err,rows){ if(err) throw err; for(var i in rows) { users[rows[i].username] = rows[i].pwd; } }); exports.users = users;
3. 使用EJS模板
<h1>Welcome <%= name %>!</h1>
var ejs = require('ejs'); var fs = require('fs'); function render(file,values) { var template = fs.readFileSync(file,'utf-8'); return ejs.render(template,{locals : values}); } exports.render = render;
var http = require('http'); var mysql = require('./mysql'); var myejs = require('./myejs'); var users = mysql.users; var server = http.createServer(function(req,res) { if('/' == req.url) { switch(req.method) { case 'GET': show(res); break; case 'POST': login(req,res); break; } } }); server.listen(3000); function show(res) { res.end(myejs.render('./login.ejs',{'script' : ''})); } var qs = require('querystring'); function login(req,res) { var body = ''; req.setEncoding('utf-8'); req.on('data',function(chunk){body += chunk}); req.on('end',function(){ var obj = qs.parse(body); if(users[obj.username] == obj.pwd) { goForum(obj.username,res); return; } goError(res); }); } function goForum(name,res) { res.end(myejs.render('./success.ejs',{'name' : name})); } function goError(res) { var script = "alert('user is not exist!');"; res.end(myejs.render('./login.ejs',{'script' : script})); }
相关文章推荐
- 实现session登陆时间的验证,验证用户登录页面的一个监听器
- 【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能
- node.js 一个简单的页面输出实现代码
- swift 实现一个登陆页面
- 一个漂亮的登陆页面(无图片 只有一个CSS实现的)
- 实现session登陆时间的验证,验证用户登录页面的一个监听器
- 一个简单的学生登陆系统的jsp实现之登陆主页面main.jsp
- 在同一个页面中实现登陆验证进入聊天室功能
- node.js 一个简单的页面输出实现代码
- node.js 一个简单的页面输出实现代码
- 一个简单的登陆页面实现
- 用ADO调用存储过程实现一个登陆注册页面
- 当客户访问一个需登陆的页面时会转到登陆页面,当客户登陆成功后会自动跳转到客户登陆前的那个页面,请问该如何实现?
- 运用cookie来写一个登陆的页面,来实现登陆效果
- 如何实现返回上一个页面,就像点击浏览器的返回按钮一般
- android:如果手机安装了app则打开一个activity,如果没有安装则去到android market如何在HTML页面实现
- 在页面中实现一个超简单的“复制按钮”
- Jquery实现页面上所有的checkbox只能选中一个
- 实现一个完整的Node.js RESTful API的示例
- 在一个jsp页面实现二级下拉框联动,实时读取数据库数据(用javascript实现)