将 JSON 对象发送到 Hapijs 路由

Send JSON object to Hapijs Route

我有一个方法可以从数据库中获取查询结果,并将其中一个结果作为 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});
    }
  }

Method/Query

/**
   * 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');
      }
    });
  },

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

我不确定,如果正确理解你的问题,但你可能可以做到这一点,只需扩展一个 pre-handler 扩展点来解决这个问题。

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

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