2016-11-29 137 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