Express 框架系列 (三) 之方法

all 方法和 HTTP 动词方法

针对不同的请求,Express 提供了 use 方法的一些别名。比如,上面代码也可以用别名的形式来写。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var express = require("express");
var http = require("http");
var app = express();

app.all("*", function(request, response, next) {
response.writeHead(200, { "Content-Type": "text/plain" });
next();
});

app.get("/", function(request, response) {
response.end("Welcome to the homepage!");
});

app.get("/about", function(request, response) {
response.end("Welcome to the about page!");
});

app.get("*", function(request, response) {
response.end("404!");
});

http.createServer(app).listen(1337);

除了 get 方法以外,Express 还提供 post、put、delete 方法,即 HTTP 动词都是 Express 的方法,express 允许模式匹配

set 方法

用于指定变量的值

1
2
3
app.set('views',_dirname+'/views')
app.set("view engine", "jade");

response 对象

response.redirect () 允许网址的重定向
response.redirect("/hello/anime");

response.sendFile () 用于发送文件
response.sendFile("/path/to/anime.mp4")

response.render () 用于渲染网页模版

1
2
3
app.get("/", function(request, response) {
response.render("index", { message: "Hello World" });
});

使用 render 方法,将 message 变量传入 index 模版,渲染成 HTML 网页

request 对象

request.ip: 用于获取 HTTP 请求的 IP 地址
request.files 用于获取上传的文件

搭建 HTTPS 服务器

使用 express 搭建 https 加密服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var fs = require('fs');
var options = {
key: fs.readFileSync('E:/ssl/myserver.key'),
cert: fs.readFileSync('E:/ssl/myserver.crt'),
passphrase: '1234'
};

var https = require('https');
var express = require('express');
var app = express();

app.get('/', function(req, res){
res.send('Hello World Expressjs');
});

var server = https.createServer(options, app);
server.listen(8084);