快递.js | 快递.路由器和路由参数输入



我正在编写一个小程序来练习Express.js遇到了这个问题。

我有一个单独的路由器,我想根据路由发送响应。因此,如果转到"/santiago",它必须发送"Hi Santiago",但现在它发送"Hi undefined"。 路由器名称的代码.js:

//name.js
const express = require('express');
const router = express.Router();
router.get('/', (req,res)=>{
res.send("Hi " + req.params.name);
});
module.exports = router;

这里是应用程序的代码.js:

//app.js
const express = require('express');
const app = express();
let port = process.env.PORT || 3000;
app.listen(port);
const name = require('./name');
app.use('/:name', name);
app.get('/', (req,res)=>{
res.send("Welcome");
});

怎么了?

您的路由器未获取该参数。 在您的姓名上设置参数.js(路由器(:

router.get('/:name', (req,res)=>{
res.send("Hi " + req.params.name); 
});

以及服务器上的根路由.js:

app.use('/', name);

基本上,您的路由器将在root上调用,但需要一个参数。

这应该可以解决您的问题,并且"欢迎"仍将打印在root上。这是因为路由器需要一个参数,所以如果没有,你的最后一个 app.get 方法将运行。

希望有帮助!

您需要在路由中标记参数。尝试这样的事情:

app.get('/:name', (req,res) => {
const { name } = req.params
res.send("Hi " + name)
});

最新更新