Pinvon's Blog

所见, 所闻, 所思, 所想

Express入门

安装

假设 node.js 已安装. 接下来创建一个目录, 然后进入此目录并将其作为当前工作目录.

mkdir myapp
cd myapp

每个项目的根目录下面, 一般都有一个 package.json 文件, 定义了这个项目所需要的各种模块, 以及项目的配置信息(比如名称, 版本, 许可证等元数据). npm install 命令根据这个配置文件, 自动下载所需的模块, 也就是配置项目所需的运行和开发环境.

npm init

一路回车, 以 index.js 为入口文件.

npm install express --save
npm install express

Hello World

进入 myapp 目录, 创建一个名为 app.js 的文件, 然后将下列代码复制进去:

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

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

var server = app.listen(3000, function () {
    var host = server.address().address;
    var port = server.address().port;
    console.log('Example app listening at http://%s:%s', host, port);
});

该代码启动一个服务并监听从3000端口进入的所有连接请求. 他将所有(/)路由返回"Hello World!"字符串. 而其他路径全部返回 404 Not Found.

node app.js

然后在浏览器中打开 http://localhost:3000 查看结果.

Express应用生成器

可能通过应用生成器工具 express 快速创建一个应用的骨架.

# 安装应用生成器
npm install express-generator -g

# 创建工作目录
express myapp

# 安装依赖包
cd myapp
npm install

启动应用:

DEBUG=myapp npm start  # Linux或MacOS
set DEBUG=myapp & npm start  # Windows

浏览器中输入 http://localhost:3000 即可.

一个简单的Express路由

路由(routing)是由一个URI(路径)和一个特定的HTTP方法(GET, POST等)组成的, 涉及到应用如何响应客户端对某个网站节点的访问.

路由的定义: app.METHOD(PATH, HANDLER); 其中, METHOD为HTTP方法. 如:

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

app.post('/', function (req, res) {
    res.send('Got a POST request');
});

app.post('/user', function (req, res) {
    res.send('Got a PUT request at /user');
});

利用Express托管静态文件

将静态资源文件所在的目录作为参数传递给 express.static 就可以提供静态资源文件的访问了. 如, 在 public 目录放置了图片, CSS和JavaScript文件, 就可以:

app.use(express.static('public'));

如果静态文件存放在多个目录中, 则可以多次调用 express.static. express.static 会根据目录添加的顺序查找所需的文件.

还可以创建一个虚拟目录, 挂载实际目录:

app.use('/static', express.static('public'));

# 访问方式: 不再需要指定public路径
http://localhost:3000/static/images/kitten.jpn

Comments

使用 Disqus 评论
comments powered by Disqus