Node.js Express实战:安装、路由与中间件解析

1 下载量 131 浏览量 更新于2024-09-02 收藏 83KB PDF 举报
"本文将深入探讨Node.js的Express框架,包括其安装、基本使用、路由配置、中间件机制以及模板引擎的应用。通过实例演示,帮助读者理解和掌握这些关键概念,适用于初学者和有一定经验的开发者参考。" 在Node.js开发Web应用时,Express是一个非常流行的框架,它提供了简洁的API来构建高效且可扩展的网络应用。让我们逐个解析Express的核心功能。 ### 安装 安装Express非常简单,只需在项目目录中运行以下命令: ```bash npm install --save express ``` 这将会把Express安装为项目的依赖,并将其记录在`package.json`文件中。 ### 基本使用 基础的Express应用初始化如下: ```javascript var express = require('express'); var app = express(); app.get('/', function(req, res) { res.send('index'); }); app.get('/new/:id', function(req, res) { res.send('news' + req.params.id); }); app.listen(3000); ``` 这里创建了一个监听3000端口的服务器,并定义了两个路由:根路径`/`返回"index",以及一个动态路由`/new/:id`,其中`:id`是参数,可以通过`req.params.id`访问。 ### 路由 Express的路由系统允许我们处理各种HTTP方法,如GET、POST、PUT等。例如: ```javascript app.get('/', function(req, res) { res.send('get请求'); }); app.post('/', function(req, res) { res.send('post请求'); }); ``` 同时,`app.all`可以捕获所有HTTP方法: ```javascript app.all('/', function(req, res) { res.send('get&post'); }); ``` 动态路由可以包含占位符,如`/student/:id`,其中`:id`可以用`req.params.id`获取。 ### 正则匹配 Express还支持正则表达式匹配路由: ```javascript app.get('/ab?cd', function(req, res) { res.send('ab?cd'); }); app.get('/ab+cd', function(req, res) { res.send('ab+cd'); }); ``` 这里的`ab?cd`匹配`acd`或`abcd`,而`ab+cd`匹配`abcd`、`abbcd`等。 ### 中间件 中间件是Express的一大特色,它按照定义的顺序依次执行。每个中间件可以处理请求、修改响应,甚至终止请求-响应周期。例如: ```javascript app.use(function(req, res, next) { console.log('Time:', Date.now()); next(); }); app.get('/', function(req, res) { res.send('Hello World!'); }); ``` 上面的中间件会在每个请求开始时打印时间戳。 ### 模板引擎 Express支持多种模板引擎,如Jade(现在称为Pug)、EJS、Handlebars等,用于生成动态HTML页面。以EJS为例,首先安装: ```bash npm install --save ejs ``` 然后设置视图引擎: ```javascript app.set('view engine', 'ejs'); ``` 最后,可以使用`res.render()`方法渲染模板: ```javascript app.get('/', function(req, res) { res.render('index', { name: 'John' }); }); ``` 在这个例子中,`index.ejs`模板可以使用`<%= name %>`来插入变量`name`的值。 Express为Node.js提供了强大的工具,用于构建Web应用。通过学习和实践,你可以利用这些功能快速地构建出功能丰富的服务端应用。