express()。METHOD()/ express()。Router()。METHOD()是否仅在嵌套路由中使用一次?

时间:2019-04-20 16:35:12

标签: express

我是新手,我正在学习快递路由器。我不清楚use([path], [function, ...] function)METHOD(path, [callback, ...] callback)

我知道前者将在(部分)请求url与路径匹配时触发回调,而后者将在请求方法和url匹配时触发回调。

app.js

const express = require('express');
const app = express();
const shopRouter = require('./routes/shopRouter');

//version 1
app.use('/admin', shopRouter);

//version 2
app.get('/admin', shopRouter);

shopRouter.js

const express = require('express');
const router = express.Router();

router.get('/', (req, res, next) => {
    res.sendFile(//a html file);
});

版本1

输入localhost:3000/admin可以正常工作。我知道这很正常,因为当调用app.use('/admin', shopRouter);时,将执行shopRouter中的代码,并且路由器将获得带有URL'/'的请求。 html文件将发送回客户端。

版本2

这不起作用。我知道这不是进行路由的正确方法,但是不理解为什么在嵌套路由中使用多个METHOD(path, [callback, ...] callback)时为什么我无法获得/ admin。当请求通过app.get('/admin', shopRouter);时,从shopRouter.js导出的路由器就会执行。但是router.get(...)无法执行。据我所知,这是一个获取请求,并且将URL传递给shopRouter是'/'。为什么它会跳过get函数?

0 个答案:

没有答案