2016-11-29 114 views
0

我想巩固我的整个快递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 
    }) 
}) 

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

回答

0

我真的不明白你想达到什么样的,但是从我所看到的,你fectchByHostname({name})应该是fetchByHostname(name),你可能能够返回hey $name。你应该确定你正在使用ES6,因为你使用的是args。否则你必须定义es5 args = {body: req.body, query: req.query};中的as。希望能帮助到你。

+0

我正在使用解构。在'args'对象中,我会在该方法内部访问'name'键。我最终提出了一个解决方案。 – benhowdle89