Express是一个基于Node.js平台的web应用开发框架,在Node.js基础之上扩展了web应用开发所需要的基础功能,从而使得我们开发Web应用更加方便、更加快捷。
1.安装
打开电脑的终端,输入 npm install express,即可安装。
2.中间件
“Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。”所以中间件对于我们而言是非常重要的。
1、app.use([path],function)
path:是路由的url,默认参数‘/',意义是路由到这个路径时使用这个中间件
function:中间件函数
2、内置中间件
express.static 是Express目前唯一内置的一个中间件。用来处理静态资源文件。
const static = require('express-static');
server.use(expressstatic('./www'));
3、自定义中间件
在上面中间件结构中,我们知道了,中间件使用时的第二个参数是一个Function,然而,要自定义一个中间件,就是倒腾一番这个Function。
这个function总共有三个参数(req,res,next);
当每个请求到达服务器时,nodejs会为请求创建一个请求对象(request),该请求对象包含客户端提交上来的数据。同时也会创建一个响应对象(response),响应对象主要负责将服务器的数据响应到客户端。而最后一个参数next是一个方法,因为一个应用中可以使用多个中间件,而要想运行下一个中间件,那么上一个中间件必须运行next()。、
3.接收请求的方法
1.get('/地址',function(req,res){});//只接收get请求
2.post('/地址',function(req,res){});//只接受post请求
3.use('/地址',function(req,res){});//都可以接收
下面为一个例子:
server.get('/',function(){
console.log ('有GET')
});
server.post('/',function(){
console.log("有POST")
});
server.use('/',function(){
console.log("use了")
});
server.listen(8080);
4.具体的步骤
1.创建服务 var server = express();
2.监听 server.listen(8080);
3.处理请求 server.use('/地址‘,function(req,res){});
5.其他需要注意的地方
1.这里使用的req与res是express封装过的,所以和原生的有区别。
2. 它的功能是非破坏式的,保留了原生的功能,添加了一些方法,比如send(可以直接写入json类型)
6.自己实现的一个简单的登陆注册,代码如下:
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="ajax.js" ></script>
<script type="text/javascript">
window.onload = function(){
var oUser = document.getElementById('user');
var oPass = document.getElementById('pass');
var oBtn = document.getElementById('btn1');
oBtn.onclick = function(){
ajax({
url:'/login',
data:{user:oUser.value,pass:oUser.pass},
success:function(str){
var json = eval('(' + str + ')');
if(json.ok){
alert("登录成功")
}
else{
alert('失败:' + json.msg);
}
},
error:function(){
alert('通信失败');
}
});
};
};
</script>
</head>
<body>
用户:<input type="text" id="user"><br>
密码:<input type="password" id="pass"><br>
<input type="button" value="登录" id="btn1">
</body>
</html>
//实现简单的登录注册
const express = require('express');
const expressstatic = require('express-static');
var server = express();
server.listen(8080);
//在学习数据库之前,先这样保存数据,但是正常的工作中是不可取的
var users={
"ddd" : "222222",
"zhangsan" : "33434343",
"lisi" : "4444343"
};
server.get('/login',function(req,res){
var user = req.query['user'];
var pass = req.query['pass'];
if(users[user] == null){
res.send({ok:false,msg:'此用户不存在'});
}else{
if(users[user] != pass){
res.send({ok:false,msg:'密码错误'});
}
else{
res.send({ok:true,msg:'成功'});
}
}
});
server.use(expressstatic('./www'));
如有错误,望指正!