node.js - express路由问题

浏览:36日期:2022-09-11

问题描述

1////////////////////////////var express = require('express');var app = express();var apiRouters = express.Router(); //这里定义了一个路由apiRouters.get('/index',function(req,res){ res.send('123'})}) app.use('/api',apiRouters) //调用app.use的api路由才能调用apiRouters路由 2///////////////////////var express = require('express');var app = express(); //这里没有定义一个路由 app.get('/api',function(req,res){ res.send('111'})}) //这里没有调用

第一个127.0.0.1:**/api/index 能访问到123第二个127.0.0.1:*/api能访问到111

第一个跟第二个代码不一样但是都能实现相同的效果,这是为什么,还是我哪里理解出错了?

问题解答

回答1:

use('/api', processor) : 相对路径中以’/api’开头的url都可以被 use截获到,而且不关心请求的方式是get还是post。'http://yourdomain/api', 'http://yourdomain/api/index'都可以被它捕获到。get('/api', processor): 相对路径必须等于’/api’才能捕获到, 只有'http://yourdomain/api'能被捕获到,并且请求方式为“get”。

回答2:

express router本身是个中间件,就和它的名字一样,它的任务是分配不同请求到不同的路由下面。如果你要做哦API的版本控制,你可能会有/api/v1/user和/api/v2/user两种路由,这时候router根据路由的设置调用不同的API。express本身是个object,对它的操作是可行的,但并不规范

相关文章: