Node.js是一个JavaScript运行环境,发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。V8引擎执行Javascript的速度很是快,性能很是好。 Node.js是一个基于Chrome JavaScript运行时创建的平台,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动、非阻塞I/O模型,具有轻量和高效的特色,很是适合在分布式设备上运行数据密集型的实时应用。请参考另外一篇博客完成Node.js的安装。这里假设已经完成Node.js的安装。
这里经过一个实例介绍如何使用Node.js实现用户注册登陆功能,其中,用户名和密码会被保存在MySQL数据库中,主要包括如下步骤:
(1)建立MySQL数据库;
(2)建立项目目录;
(3)安装Express开发框架;
(4)安装Jade模板引擎;
(5)安装MySQL驱动模块;
(6)建立服务器;
(7)建立网页;
(8)测试网页。javascript
建立MySQL数据库
在Linux终端中,使用以下命令进入MySQL Shell交互式执行环境:html
mysql -u root –p
按照系统提示输入MySQL数据库的root用户的密码,而后会进入MySQL Shell交互式执行环境,在“mysql>”命令提示符后面输入以下命令建立数据库:前端
mysql> create database userlogin; mysql> use userlogin; mysql> create table user (userid int(20) not null auto_increment, username char(50), password char(50), primary key(userid)); mysql> desc user; mysql> select * from user;
建立好的数据库user表的模式信息以下图所示。java
建立项目目录
在Linux终端中,使用以下命令建立项目目录并完成初始化:node
cd ~ mkdir userloginjadeapp cd userloginjadeapp npm init
在输入初始化项目命令“npm init”后,终端会提示输入项目的相关信息,并自动把这些信息记录在package.json中。若是想进行快捷开发,不想手动输入项目信息,只须要一直按“Enter”键便可,接受默认的自动配置。mysql
安装Express开发框架
在Linux终端中继续以下命令来安装Express开发框架:sql
cd ~/userloginjadeapp npm install express --save #save前面是两个英文短横线
经过上面命令安装的模块,都会放在当前项目文件夹下的node_modules文件夹下,并更新到package.json文件中。Node.js引用该模块的时候,会自动从node_modules文件夹下寻找模块。数据库
安装Jade模板引擎
在Linux终端中执行以下命令往项目文件夹中继续添加Jade模板引擎软件包:express
cd ~/userloginjadeapp npm install jade --save #save前面是两个英文短横线
安装MySQL驱动模块
为了让Node.js可以顺利访问MySQL数据库,须要单独安装MySQL驱动模块。在Linux终端中执行以下命令:npm
cd ~/ userloginjadeapp npm install mysql --save
安装body-parser
为了让Node.js可以正确解析从前端采用POST方式提交过来的数据,还须要安装body-parser。在Linux终端中执行以下命令:
cd ~/ userloginjadeapp npm install body-parser --save
建立服务器
在userloginjadeapp项目目录中,建立一个名为userloginjade.js的文件,这个文件是整个网页应用的入口,该文件的内容以下:
/** * Created by linziyu on 2018/7/3. */ /** * express接收html传递的参数 */ var express=require('express'); var bodyParser = require('body-parser') var app=express(); var mysql=require('mysql'); app.set('view engine', 'jade'); app.set('views', __dirname); app.use(bodyParser.urlencoded({extended: false})) app.use(bodyParser.json()) /** * 配置MySQL */ var connection = mysql.createConnection({ host : '127.0.0.1', user : 'root', password : '123456', database : 'movierecommend', port:'3306' }); connection.connect(); /** * 跳转到网站首页,也就是用户登陆页面 */ app.get('/',function (req,res) { res.render('index'); }) /** * 实现登陆验证功能 */ app.post('/login',function (req,res) { var name=req.body.username.trim(); var pwd=req.body.pwd.trim(); console.log('username:'+name+'password:'+pwd); var selectSQL = "select * from user where username = '"+name+"' and password = '"+pwd+"'"; connection.query(selectSQL,function (err,rs) { if (err) throw err; if (rs.length==0){ res.render('error',{title:'WARNING',message:'对不起,用户名:'+name+ ' 不存在'}); return; } console.log(rs); console.log('ok'); res.render('ok',{title:'Welcome User',message:name}); }) }) /** * 跳转到注册页面 */ app.get('/registerpage',function (req,res) { res.render('registerpage',{title:'注册'}); }) /** * 实现注册功能 */ app.post('/register',function (req,res) { var name=req.body.username.trim(); var pwd=req.body.pwd.trim(); var user={username:name,password:pwd}; connection.query('insert into user set ?',user,function (err,rs) { if (err) throw err; console.log('ok'); res.render('ok',{title:'Welcome User',message:name}); }) }) var server=app.listen(3000,function () { console.log("userloginjade server start......"); })
上面的代码用于启动一个HTTP服务器,并监遵从3000端口进入的全部链接请求。
建立模板文件
如今建立四个网页模板文件,具体功能以下:
(1)index.jade:用户访问网站后默认呈现的页面,提供了用户登陆界面和注册页面连接;
(2)registerpage.jade:用户注册页面;
(3)ok.jade:呈现成功登陆的确认信息。
(4)error.jade:呈现错误提示信息。
1.index.jade文件
html head title!= title body form(action='/login', method='post') p 用户登陆 p User Name: input(type='text',name='username') p Password: input(type='text',name='pwd') br input(type='submit',value='登陆') br a(href='/registerpage', title='注册') 注册
- registerpage.jade文件
html head title!= title body form(action='/register', method='post') p 用户注册 p User Name: input(type='text',name='username') p Password: input(type='text',name='pwd') br input(type='submit',value='注册')
- ok.jade文件
html head title!= title body h1 热烈欢迎用户: #{message}
- error.jade文件
html head title!= title body h1 #{message}
测试网页
在Linux终端中,执行以下命令启动刚才已经建立好的HTTP服务器:
cd ~/ userloginjadeapp node userloginjade.js
而后,在Linux系统中打开一个浏览器,在地址栏目输入“http://localhost:3000”,就能够看到以下图所示的网页效果。
点击“注册”连接,就会跳转到注册页面,以下图所示:
输入用户名“xmudblab”和密码“123456”之后,点击“注册”,就会完成用户注册,并跳转到欢迎用户页面,以下图所示。
在Linux系统中打开一个浏览器,再次在地址栏目输入“http://localhost:3000”,从新回到以下图所示的登陆页面。
输入用户名“xmudblab”和密码“123456”之后,点击“登陆”,就会跳转到欢迎用户页面,以下图所示。