Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在各种快速路线之间使用值_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何在各种快速路线之间使用值

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

我是一个在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);
  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不,它将特定于用户/组。那么如何处理呢?