为什么正则表达式在NodeJ中不起作用

时间:2016-03-15 04:19:46

标签: regex node.js express

我已在我的网站中屏蔽了'api', 'components', 'app', 'bower_components', 'assets',如下所示:

app.route('/:url(api|components|app|bower_components|assets)/*')
    .get(errors[404]);

不幸的是,当我在网站上输入“http://localhost/api”时,我可以访问。请告诉我上述代码中哪一个缺失或错误。感谢。

1 个答案:

答案 0 :(得分:-1)

您的示例正常运行,尝试使用http://localhost:3000/api访问您的应用 我做了一个功能性的例子:

var express = require('express');
var app = express();


app.route('/:url(api|components|app|bower_components|assets)/*')
  .get(function blockRoutes(req, res, next){
    console.log('req.params.url: ',req.params.url);
    res.status(404).send('not found');
  });

app.get('/api', function (req, res) {
  res.send('API accessed!');
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

用这个例子测试 http://localhost:3000/api //如何返回200 http://localhost:3000/api/something //如何返回404