English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Маршрутизация Express.js определяет, как приложение Express использует специфические URI (илиpath)и специфические HTTP методы запроса (GET, POST и т.д.) для ответа на запросы клиента 。
Чтобы понять потребность в маршрутизации Express.js, давайте углубимся в пример.
Создайте базовое приложение Express, как показано ниже.
app.js
var express = require('express') var app = express() // 启动服务器 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') )
Что нам нужно сделать, это создать экземпляр быстрого приложения, запустить его на порту 8000. Теперь откройте браузер и перейдите по URL http://localhost:8000/.
Ответ заключается в том, что он не может получить ресурс «/».
Даже если в консоли нет ошибок. Приложение работает хорошо.
Почему это? Потому что в приложении Express мы запустили сервер, но не определили, что должно произойти при поступлении запроса на сервер.
Вот как проявляется маршрутизация Express.js. Вот простая быстрый маршрут.
app.get('/', function(req, res) { res.send('Это базовый пример для Express.js от w3codebox') )
Что определяет этот маршрут? Когда вы получаете GET запрос с URL запросом, этот маршрут определяет выполнение команд в функции '/.'
В следующем экранном снимке показан маршрут, который выполняет функцию '/hello/' для GET запросов с URL запросом.
Давайте определим некоторые маршруты в app.js и запустим сервер.
app.js
var express = require('express') var app = express() // Для GET запросов и URL пути '/' или корня выполняется маршрутизация app.get('/', function(req, res) { res.send('Дом.') ) // Для GET запросов и URL пути '/hello/' выполняется маршрутизация app.get('/hello/', function(req, res) { res.send('Привет страница.') ) // 为GET请求和请求url路径'/bye/'执行的路由 app.get('/bye/', function(req, res) { res.send('Bye page.') ) // 启动服务器 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') )
启动快速申请。
现在点击浏览器中的网址。默认情况下,浏览器发送GET请求。
带有URL路径http:// localhost:8000 /的GET请求
带有URL路径http:// localhost:8000 / hello /的GET请求
带有URL路径http:// localhost:8000 / bye /的GET请求
您可以在路线中提供一个或多个功能。每个功能都称为中间件。
app.js
var express = require('express') var app = express() // 具有多种功能的快速路线 app.get('/hello/', function(req, res, next) { res.write('Hello page. ') next() }, function(req, res, next){ res.write('Hello again. ') res.end() ) // 启动服务器 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') )
在浏览器中,输出为
您也可以分别为模块化定义这些功能,如下所示。
var express = require('express') var app = express() function hello(req, res, next) { res.write('Hello page. ') next() } function helloagain(req, res, next){ res.write('Hello again. ') res.end() } // 具有多种功能的快速路线 app.get('/hello/', hello, helloagain) // 启动服务器 var server = app.listen(8000, function(){ console.log('Listening on port 8000...') )
在本Express.js教程中,我们了解了Express.js路由是什么,如何定义Express.js路由以及如何使用这些路由针对不同的URL路径提供不同种类的HTTP方法。