express的基础应用
基础结构解释
通过之前的代码已经可以窥看到一丝端倪,实例出来的 app
对象调用get()方法,而get()方法中的两个参数:请求路径 '/'
和回调函数 function(){}
,两者分别代表了 请求的方向和接受到请求后服务器将要做的事情。 请求的方向通常被称为 route(路由)
。
我用地球语言来解释之前这段代码————
1 | var express = require('express'); |
那就应该是:开启服务器,创建app实例并通过其监听服务器的3000端口,当端口中获取到向 /
发送的 get
请求时,将服务器的操作过程转入到 app.get('/',function(req,res){})
的回调函数中。
请求的方式
对于接触过ajax的前端开发者来说肯定知道http中的GET请求和POST请求,不太常见的其实还包括PUT和DELETE请求,它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
看到这里就很自然可以想到有 app.get()/app.post()/app.put()/app.delete()
这四种方法。
赶紧开始干货吧
很多看我文章的人都在声讨:明明从第一更的最后就说不再做 hello world 了,为什么第三更都要结束了看到的仍旧是 hello world ?
所以这次我保证一定要在第三更结束之前让你们看到不是 hello world 的内容。
增加渲染引擎
express可以和一些著名的js模板引擎配合来实现服务器端的动态页面渲染,官方默认的渲染引擎是 jade
,不过考虑到各位看我文章的应该都是前端出身,搞个缩进语法的恐怕看不懂,所以还是用最熟悉的 HTML 语法最实际,这里安装 ejs
模板引擎。回到命令行里,在当前工程目录中输入
1 | $ npm install ejs --save-dev |
在工程目录下新建 views
文件夹用来存放模板。1
2
3
4
5.
├── app.js
├── node_modules/
├── package.json
└── views/
在app.js文件中的第3行加入内容,并且设置渲染内容:1
2
3
4
5
6
7
8
9
10
11
12var express = require('express');
var app = express();
app.set('views', './views');//为express设置模板路径
app.set('view engine', 'ejs');//为express设置模板引擎
app.get('/',function(req,res){
res.render('index',{title:'这次真的不是hello world'});//第一参数为选择的模板,根据之前的设置这里指向了./views/index.ejs
});
app.listen(3000,function(){
console.log('server is running at 3000');
});
views 文件夹中新建 index.ejs
文件,并写入如下内容保存1
2
3
4
5
6
7
8
9
10
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我的第一个网页</title>
</head>
<body>
<h1><%= title %></h1>
</body>
</html>
继续使用node app.js
命令来启动服务器程序,访问localhost:3000/
这次打开的真的不是「hello world」了。从这段代码我们可以分析出来,页面模板引擎会使用传入函数中的对象来替换HTML 页面中 <% %>
的内容,实际上模板引擎的语法还可以做更多的事情,比如进行循环和分支判断,具体方法可以参考这篇EJS模版的使用摘要中的语法部分。
(未完待续)