猿问

关于node拦截请求的问题

我在app.js里use了路由


var headbarRouter = require('./routes/headbar');

app.use('/headbar', headbarRouter);

然后再routes/headbar.js里这么写


router.get('/', function(req, res, next) {

    console.log("--------")

  res.render('headbar', { title: 'Express' });

});

我的理解是只要是headbar开头的请求都会拦截下来,然后render到headbar.ejs

但是在index.ejs 我是这么写的


<script src="/headbar.js"></script>

这不也是一个请求吗?为什么没有拦截走到headbar.ejs里去,而是报错404

月关宝盒
浏览 713回答 2
2回答

千巷猫影

app.use('/headbar')&nbsp;这里的&nbsp;/headbar&nbsp;的匹配规则是匹配一个请求 path 的第一个部分--前两个/符号之间的内容. 如果要说前缀匹配, 那一个 path 的前缀是指&nbsp;此 path 的第一个部分. 对于&nbsp;/headbar.js&nbsp;来说就是&nbsp;headbar.js, 与&nbsp;headbar&nbsp;显然是不匹配的.&nbsp;/headbar&nbsp;可以处理&nbsp;/headbar&nbsp;或&nbsp;/headbar/*&nbsp;之类的请求.

吃鸡游戏

script标签请求的是js文件,属于静态文件,走的是static配置的静态目录,不走路由
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答