Javascript 如何在各种快速路线之间使用值
我是一个在NodeJS中表达和编写应用程序的新手。我在使用相同的参数时遇到问题。我的代码是:Javascript 如何在各种快速路线之间使用值,javascript,node.js,express,Javascript,Node.js,Express,我是一个在NodeJS中表达和编写应用程序的新手。我在使用相同的参数时遇到问题。我的代码是: 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); rend
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);
}
登录jade将重定向到app.get(/config),我将获得webhook\u url和组名。现在,我正在呈现一个带有表单post的config jade页面,提交后,控件会转到app.post(/config),现在的问题是,我希望这里的webhook\u url和组\u名称存储在数据库中。那么如何以一种好的方式传递这些值呢?如果出于安全原因,
webhook\u url
和group\u name
的值无法放入网页,那么通常的解决方案是创建一个会话对象,并在会话中为特定用户存储它。然后,在POST上,您可以从该用户的会话中获取它。express session
模块可帮助您为每个用户创建会话对象。这打破了通常的无状态网页设计,因此必须有一个很好的理由这样做
否则,该值可能只需插入表单中的隐藏字段(由渲染器)中,这样当POST发生时,该值将与表单一起发送回,并且您将在POST数据中获得所需的所有内容。这会使您的系统完全无状态,这有很多好处(简单性、可扩展性、可靠性等)。什么是
renderView
功能?只是调用res.render
?您可以在res.render
中传递要在html上呈现的值。我已经更新了代码,它也会这样做。问题是,我不希望这些值出现在呈现页面中,而希望出现在app.post(/config)函数中。@OmriLuzon我应该全局存储这些值吗?我不知道这是否是一个好的做法。这取决于,如果您需要在所有路由上共享每个用户的特定信息,您将需要使用会话管理。但是,如果这些值对所有用户都是全局的,那么就可以创建它global@OmriLuzon不,它将特定于用户/组。那么如何处理呢?