这怎么行得通:
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/