Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可用于快速构建高性能、可扩展的网络应用程序。Express.js是一个基于Node.js的快速、灵活的Web应用框架。
一、Node.js express框架简介
1.1 什么是Express框架
Express框架是一个快速、开放、极简的Web应用框架,是基于Node.js环境的中间件框架。我们可以使用该框架快速的并且便捷的搭建Web应用程序。
1.2 Express框架的优势
1.快速:Express框架的核心代码只提供了最基础的Web应用架构,因此运行速度非常快速。
2.简单:Express框架是基于Node.js的,因此它提供了Node.js强大的API,同时Express的API也相当简单易用。
3.灵活:Express框架可以集成众多扩展组件,可以灵活的完成不同的需求。
1.3 Express框架的基本使用
安装Express框架命令:npm install express
构建第一个Express应用程序代码:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello Express!');
});
app.listen(3000, function () {
console.log('Server listening on port 3000!');
});
1.4 Express路由
Express的路由是根据HTTP请求中的方法和路径来执行不同操作的一种机制。在Express应用中可以通过app.get()、app.post()、app.put()、app.delete()等函数为应用程序设定路由,并通过req.params获取路径参数(如URL中xxx)和req.query获取查询参数(如URL中yyy)。
常见示例:
①利用app.get()设置基于路径的路由:
app.get('/api/user/:id', function (req, res) {
res.send('user:' + req.params.id);
});
②利用app.post()设置基于HTTP POST请求的路由:
app.post('/api/user', function (req, res) {
console.log('HTTP POST request received!');
res.send('HTTP POST request received!');
});
1.5 Express中间件
在Express框架中,路由调用时需要一个支持promise模式的函数链条,这条链条就是中间件(Middleware)。中间件把所有HTTP请求传入,实现各种功能,比如响应请求、检查用户登录状态、记录日志等。
常见示例:
①利用app.use()来实现静态文件服务
app.use(express.static('public'));
②使用自定义的中间件
// 自定义中间件记录请求日志
app.use(function(req, res, next) {
console.log('%s %s', req.method, req.url);
next();
});
// 自定义中间件检查登录状态
app.use(function(req, res, next) {
if (!req.isAuthenticated()) {
return res.redirect('/login')
}
next();
});
二、实现过程
2.1 创建项目
首先,我们需要创建一个项目文件夹。在项目文件夹下,使用以下命令创建一个新的package.json文件:
npm init
安装Express框架和其他必要的模块:
npm install express -S
2.2 创建服务器
在项目文件夹下的index.js文件中创建一个应用程序实例。
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
我们使用app.get()函数请求一个URL路径。该函数的第一个参数是请求的URL地址,第二个参数是用来处理该URL请求的函数。
我们将应用程序实例监听在本地端口3000。
2.3 路由的处理
在Express框架的应用程序中,可以使用app.route()函数和chainable rout handlers来实现基于路径的路由链。使用如下代码在index.js文件中创建一个路由:
const express = require('express');
const app = express();
const port = 3000;
app.route('/users')
.get((req, res) => {
console.log('Get all users');
res.send('Get all users');
})
.post((req, res) => {
console.log('Create a user');
res.send('Create a user');
})
.put((req, res) => {
console.log('Update a user');
res.send('Update a user');
})
.delete((req, res) => {
console.log('Delete a user');
res.send('Delete a user');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
在上述代码中,我们使用app.route()函数创建一个路由标准化链,该链涵盖了所有HTTP请求方法,包括GET、POST、PUT和DELETE。每个函数执行了一些提示性操作,比如在控制台上打印提示消息和向客户端发送HTTP响应。
2.4 中间件的处理
中间件是Express框架中的一个关键概念。使用中间件,我们可以处理应用程序的请求、响应和状态数据。在Express应用程序中,中间件可以使用app.use()添加到默认处理堆栈的开头(执行顺序是自上而下)。在下面的例子中,我们使用以下代码创建一个中间件函数并添加它到应用程序:
const express = require('express');
const app = express();
const port = 3000;
const myLogger = (req, res, next) => {
console.log('Logging middleware!');
next();
}
app.use(myLogger);
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
在上述代码中,我们使用app.use()函数将myLogger中间件函数添加到应用程序的堆栈中。如果Web应用程序收到HTTP请求,控制台输出将显示“Logging middleware!”消息。
2.5 路由参数传递
在Express应用程序中,路由参数可在URL中传递,通过以下代码可以接收路由参数:
const express = require('express');
const app = express();
const port = 3000;
app.get('/user/:id', (req, res) => {
console.log(`Get a user with ID: ${req.params.id}`);
res.send(`Get a user with ID: ${req.params.id}`);
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
在上述代码中,我们使用app.get()函数指定生成API的HTTP请求方法和URL路径。获得的路由参数可在请求对象req的params属性中使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js express框架简介与实现 - Python技术站