app.get工作,app.use没有

时间:2017-01-27 11:16:58

标签: 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;

在这种情况下,它只是将未定义的日志记录到控制台,但在第一种情况下,它返回在“新”路由之后键入的所有内容。

1 个答案:

答案 0 :(得分:3)

如果要使用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]})
});

试试这个并告诉我