Node.js Express 框架


Node.js Express框架

框架概述

Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Express是一个快速、开放、极简的Web框架,它为WEB和移动应用提供了一组强大的特性。

Express框架可以用于构建Web应用和APIs。它兼容Middleware,以提供大量常见功能,如路由、静态文件服务、视图、部分视图等,同时也可以使用各自的Node模块来拓展这些功能。Express框架提供的API是完全兼容Node.js的原生API,这样可以轻松地将其与其他中间件集成在一起。

安装与使用

要安装Express框架,你可以使用npm,在终端输入以下命令:

npm install express --save

这将把Express模块安装到你的node_modules文件夹中,并将其添加到依赖列表中。

下面是我们的第一个Express应用程序:

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

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

app.listen(3000, function(){
  console.log('Example app listening on port 3000');
});

我们导入Express模块并将其赋值给一个变量。接下来,我们使用app.get()方法来定义一个路由,该路由将处理根URL并返回一条消息。最后,我们使用app.listen()方法来启动应用程序并监听3000端口。

在终端中,进入包含app.js的目录并执行以下命令:

node app.js

浏览器中打开http://localhost:3000,你将看到一条消息“Hello World”。

路由

在Express中,路由是由一个URI和特定的HTTP请求方法(GET、POST等)组成的。每个路由可以有多个中间件函数,这些函数在匹配的路由被触发时按顺序执行。

以下是一些基本的路由示例:

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

// POST方法
app.post('/submit', function(req, res){
  res.send('Submitted successfully');
});

还有一些高级的路由处理方式,如正则表达式路由、带有占位符的路由、参数处理器及路由模块化,这些都可以通过查看Express官方文档来了解。

中间件

中间件函数在请求到达路由之前运行,并且可以执行多个任务,如解析请求体、设置响应头、记录日志等。下面是一个基本的Express中间件示例:

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

// 记录请求时间
app.use(function(req, res, next) {
  console.log('Time: ', Date.now());
  next();
});

// 路由处理函数
app.get('/', function(req, res) {
  res.send('Hello World');
});

app.listen(3000);

在上面的例子中,我们定义了一个带有一个中间件函数的Express应用程序。该中间件函数将记录请求的时间,并将请求传递给后面的函数处理。

视图

在Express中,通过使用视图引擎,你可以轻松地将模板数据呈现为HTML。Express支持不同的视图引擎,包括Jade、EJS等。

以下是一个使用EJS视图引擎的视图示例:

app.set('view engine', 'ejs');

app.get('/', function(req, res) {
  res.render('index', { title: 'Express', message: 'Hello World' });
});

在上面的例子中,我们使用app.set()方法将视图引擎设置为EJS。然后,我们定义一个路由函数,该函数使用res.render()方法来呈现名为“index”的EJS模板,将模板数据传递给模板渲染器。

总结

使用Express框架可以让我们更快捷、简单地开发Web应用和APIs。Express非常适合构建中小规模的应用程序,因为它很灵活、易于使用,并提供了非常完善的文档。