2017-06-16 64 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数据。这使您的系统完全无状态,这有很多原因(简单性,可伸缩性,可靠性等)。