使用Express Router匹配路由

时间:2016-11-29 12:16:16

标签: node.js express routing

我试图在我的Express API中整合一堆route用法,我希望我能做到这样的事情:

const app = express()

const get = {
  fetchByHostname({
    name
  }) {
    return `hey ${name}`
  }
}

const map = {
  '/public/hostname/:hostname': get.fetchByHostname
}

app.use((req, res, next) => {
  const url = req.originalUrl
  const args = { ...req.body, ...req.query }
  const method = map[url] // this won't work
  const result = method(args)
  return res.json({
    data: result
  })
})

我试图避免绕过reqres对象,只是在一个地方处理对客户端的响应。是否有Express / Node / .js模块或匹配URL的方式,如上面的map对象?

1 个答案:

答案 0 :(得分:0)

我真的不明白你想要实现的目标,但从我所看到的情况来看,你的fectchByHostname({name})应该是fetchByHostname(name)而你可以返回hey $name。您应该确定使用的是ES6,因为您args。否则你必须在es5 args = {body: req.body, query: req.query};中定义as。希望它有所帮助。