node.js - app.get 有效,app.use 无效

标签 node.js url express router

这怎么行得通:

app.get(/\/new\/(.*)/, function (req, res) {

    console.log(req.params[0]);
    res.json({site: req.params[0]});

});

但是如果我使用app.use(),则相同的代码不会。

const app = require("express")();
const error = require("./routes/error");

app.use(/\/new\/(.*)/,error);

error.js

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


router.get("/",function(req,res){
    console.log(req.params[0])
    res.json({site:req.params[0]})
});




module.exports = router;

在这种情况下,它只是将 undefined 记录到控制台,但在第一种情况下,它会返回"new"路由之后键入的所有内容。

最佳答案

如果您想使用 app.use() 实现相同的功能,则必须稍微修改您的代码。进行以下更改:

在 app.js 中:

app.use('/new',error);

在 error.js 中,

router.get(/(.*)/,function(req,res){
    console.log(req.params[0])
    res.json({site:req.params[0]})
});

试试这个并告诉我

关于node.js - app.get 有效,app.use 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41892737/

相关文章:

json - Elasticsearch 匹配给定数组中的所有标签

javascript - Node.js Express-Session + Redis 单实例问题

javascript - 为什么 req.body 在 Express 中未定义?

python - 正则表达式,过滤带数字和不带数字结尾的 url

node.js - 从子路由呈现的 Jade 模板链接到静态文件

node.js - 有没有办法在 TypeORM 中访问 `last_inserted_id`?

javascript - 要求和导入显示不同的行为。为什么会这样?

mysql - 如何在与sequ​​elize Node 的关系上使用having子句

magento - 当我有唯一的 URL 参数时,如何让 Magento 提供页面的缓存版本?

php - 通过链接获取网站标题