0

我有一种方法可以从数据库中获取查询结果,并将其中一个结果作为 URL 中的参数发送到我在 Hapi.js 中的一个路由。无论如何我可以将 JSON 对象发送到我的路线吗?

路线

    {
    method: 'GET',
    path: '/Account/{Tag}',
        config: {
            validate: {
                query: {
                    tag: Joi.string()
                }
            }
        },
    handler: function(request, reply) {
            var tag = encodeURIComponent(request.params.Tag);
            reply.view('Account/index', {tag: tag});
    }
  }

方法/查询

/**
   * Check if Account exists in database, then login
   * @param {String} request.query.email
   * @param {String} request.query.password
   */
  login: function(request, reply) {
    connection.query('SELECT email AS email, tag AS tag FROM users WHERE email = ? AND password = ?', [request.query.email, sha256(request.query.password)], function(error, results, fields) {
      if (results[0]) {
        //reply.(results[0]).created('/Account/' + results[0].tag);
        reply.redirect('/Account/' + results[0].tag);
      } else {
        reply.redirect('/Error');
      }
    });
  },
4

2 回答 2

0

我找到了解决我的问题的方法。我在 MySQL 中使用另一个查询请求我需要的信息,将我的路由回复存储在查询的回调中。

于 2016-07-05T22:51:49.440 回答
0

我不确定,如果正确理解您的问题,但可能您可以这样做,只需扩展pre-handler扩展点来解决这种情况。

如果您使用pre-handler,您可以简单地查询并在请求属性中存储您需要的信息。

http://hapijs.com/api#request-lifecycle

于 2016-07-06T19:09:07.617 回答