2017-06-16 21 views
0

我是Express的新手,並且在節點js中編寫應用程序。我在使用相同的參數時遇到問題。我的代碼是:如何使用各種快速路由之間的值

app.get('/signin', function (req, res) { 
    renderView(req, res, 'signin.jade'); 
}); 

app.get('/config', function (req, res) { 
    addOrUpdateGroupConfig(req.query.group_name, req.query.webhook_url); 
    renderView(req, res, 'config.jade'); 
}); 

app.post('/config', function (req, res) { 
.. 
} 
function renderView(req, res, view, locals) { 
    if (locals === undefined) { 
    locals = {}; 
    } 
    res.render(view, locals); 
} 

在玉的標誌重定向到app.get(/ config),我得到webhook_url和group_name。現在我正在呈現一個具有表單發佈的配置jade頁面,提交控制到app.post(/ config)後現在問題是我想webhook_url和group_name在這裏存儲在數據庫中。那麼如何以一種好的方式來傳遞這些價值呢?

+0

什麼是'renderView'函數?只是調用'res.render'?你可以在'res.render'中傳遞值以在html上呈現。 –

+0

我已經更新了相同的代碼。事情是我不想在呈現頁面中的那些值,而是我想要的那個app.post(/ config)函數。 – Ashish

+0

@OmriLuzon我應該存儲全球值?我不知道這是否是一種好的做法。 – Ashish

回答

0

如果出於安全原因無法將webhook_urlgroup_name值放入網頁,那麼通常的解決方案是創建一個會話對象並將其存儲在會話中的特定用戶。然後,在POST上,您可以將其從該用戶的會話中取出。 express-session模塊可用於幫助您爲每個用戶創建一個會話對象。這與通常的無狀態網頁設計相違背,所以必須有一個很好的理由去這樣做。否則,該值可能只需插入隱藏字段中的表單中(由您的渲染器),以便在POST發生時,該值將與表單一起發回,並且您將獲得所需的所有內容POST數據。這使您的系統完全無狀態,這有很多原因(簡單性,可伸縮性,可靠性等)。