【问题标题】:Can we use another route within a route in Express.js?我们可以在 Express.js 的路由中使用另一条路由吗?
【发布时间】:2020-09-26 12:34:17
【问题描述】:

所以我有 index.js、userRoute 和friendRoute

在 index.js 中

const app = express()
const userRoutes = require('./routes/user')
app.use('/users', userRoutes)

在 /routes/user.js 中,我想附加 /friends 路由

const friendRoutes = require('../routes/friend')
router.use('/:username/friends', friendRoutes)

我想要的预期结果是获取用户的好友列表 /users/:username/friends

但是当我尝试点击 url 时,我没有得到用户名参数 有什么方法可以达到预期的效果吗? 还是有做这种事情的最佳实践?

【问题讨论】:

    标签: javascript node.js express routes


    【解决方案1】:
    exports.friendRoutes = async (req, res)=>{
        const username = req.params.username;
        console.log(username)
    }
    
    // or
    
    exports.friendRoutes = async (req, res)=>{
        const {username} = req.params;
        console.log(username)
    }
    

    【讨论】:

      【解决方案2】:
      更新您的 /routes/user.js
      const friendRoutes = require('../routes/friend')
      router.use('/:username/friends', (req, res, next) => {
          req.username = req.params.username;
          next();
      }, friendRoutes);
      
      在 /routes/friend.js 中使用 req.username 来获取参数值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-17
        • 2015-12-06
        • 1970-01-01
        • 2017-09-02
        • 2018-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多