如何在各种Express路线之间使用值

时间:2017-06-16 21:53:07

标签: javascript node.js express

我是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);
}

登录jade重定向到app.get(/ config),我收到了webhook_url和group_name。现在我正在渲染一个具有表单帖子的配置jade页面,在提交控件来到app.post(/ config)后现在问题是我想将webhook_url和group_name存储在数据库中。那么如何以良好的方式传递这些价值呢?

1 个答案:

答案 0 :(得分:0)

如果出于安全原因无法将webhook_urlgroup_name值放入网页,那么通常的解决方案是创建会话对象并将其存储给特定用户在他们的会议中。然后,在POST上,您可以从该用户的会话中获取它。 express-session模块可用于帮助您为每个用户创建会话对象。这与通常的无状态网页设计有关,因此必须有一个非常好的理由去这样。

否则,该值应该只是插入隐藏字段中的表单(由渲染器),以便在POST发生时,该值将与表单一起发回,并且您将拥有所需的一切在POST数据中。这使您的系统完全无状态,这有很多原因(简单性,可扩展性,可靠性等等)。