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]}) });
试试这个,让我知道