1.使用Express发送简单的网络请求
let express=require('express');
//创建你服务器应用程序,相当于原来的http.createServer
let app=express();
//公开指定目录,只要这样做了,我们就可以直接通过/public/xxx的方式访问public目录中的所有资源了
//第一个指定的参数xxx是通过链接xxx开头的访问第二个参数文件夹中的文件,相当于起了一个别名
app.use('/public/',express.static('./public/'));
//服务器收到get请求/的时候,执行回调
app.get('/',function(req,res){
res.send('hellow express');
})
//相当于server.listen
app.listen(8888,function(){
console.log('app is running at port 8888');
})
2.Express结合模板引擎使用
我们结合Express使用模板引擎需要同时安装art-template和express-art-template
安装完之后,需要导入模板引擎,第一个参数表示当渲染以.xxx结尾的文件的时候,使用art-template模板引擎
app.engine('html',require('express-art-template'));
Express为response提供了一个方法render,只有配置了模板引擎才可以使用
res.render('html模板名',{模板数据})
这个方法第一个参数不能写路径,默认会去项目中的views目录查找该模板文件
Express有一个约定:开发人员会把所有试图文件都放到views目录中
//在express中使用模板引擎,我们需要安装art-template和express-art-template,因为express-art-template依赖art-template
let express=require('express');
//创建你服务器应用程序,相当于原来的http.createServer
let app=express();
//公开指定目录,只要这样做了,我们就可以直接通过/public/xxx的方式访问public目录中的所有资源了
//第一个指定的参数xxx是通过链接xxx开头的访问第二个参数文件夹中的文件,相当于起了一个别名
app.use('/public/',express.static('./public/'));
//第一个参数表示当渲染以.xxx结尾的文件的时候,使用art-template模板引擎
app.engine('html',require('express-art-template'));
//服务器收到get请求/的时候,执行回调
app.get('/',function(req,res){
//res.send('hellow express');
//Express为response提供了一个方法render,只有配置了模板引擎才可以使用
//res.render('html模板名',{模板数据})
//这个方法第一个参数不能写路径,默认会去项目中的views目录查找该模板文件
//Express有一个约定:开发人员会把所有试图文件都放到views目录中
res.render('404NotFound.html',{
msg:'我是发送过来的数据'
});
})
//如果想要修改默认的views视图渲染存储目录
//app.set('views',目录路径);
//相当于server.listen
app.listen(8888,function(){
console.log('app is running at port 8888');
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>404</title>
</head>
<body>
<h1>404 Not Found</h1>
<p>{{msg}}</p>
</body>
</html>
3.关于Express中的表单post提交问题
有时候我们在form表单提交的时候,表单发送的是POST请求,这个时候我们就需要使用一个中间插件body-parser来接收数据。
(1)安装中间件
(2)引包
let bodyParser=require('body-parser');
(3)配置body-parser
只要加入这个设置,那么在req请求对象上会多出来一个属性:body,我们这个时候就可以直接通过req.body来获取表单POST请求体数据了。
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
(4)我们可以通过req.body()来获取表单POST请求体数据
app.use(function(req,res){
res.setHeader('Content-Type','text/plain')
res.write('you posted:\n')
res.end(JSON.stringify(req.body,null,2))
})
4.Express创建路由的方法
我们在根据客户端不同的请求路径,发送不同的静态数据文件,需要使用到路由,Express提供了一种更好的方式,是专门用来包装路由的,我们可以把处理路由的操作单独的抽离出来成为一个文件使用。
(1)创建一个路由容器
let router=express.Router();
(2)把路由都挂载到router路由容器中
router.get('路径名称',回调函数)
(3)把router导出
(4)在app文件中把路由容器导入并挂载到app服务中
app.use(router)