我试图在我的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
})
})
我试图避免绕过req
和res
对象,只是在一个地方处理对客户端的响应。是否有Express / Node / .js模块或匹配URL的方式,如上面的map
对象?
答案 0 :(得分:0)
我真的不明白你想要实现的目标,但从我所看到的情况来看,你的fectchByHostname({name})
应该是fetchByHostname(name)
而你可以返回hey $name
。您应该确定使用的是ES6,因为您args
。否则你必须在es5 args = {body: req.body, query: req.query};
中定义as。希望它有所帮助。