English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NodeJS Основной учебник

NodeJS Express.js

NodeJS Буфер & URL;

NodeJS MySql

NodeJS MongoDB

NodeJS Файл (FS)

NodeJS Другое

Маршруты Express.js

Маршрутизация 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方法。