app.get起作用,app.use不起作用

这是如何工作的:

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; 

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

如果你想用app.use()实现相同的function,你必须稍微修改你的代码。 做以下更改:

在app.js中:

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

并在error.js中,

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

试试这个,让我知道