0

データベースからクエリ結果を取得し、結果の 1 つを URL のパラメータとして Hapi.js のルートの 1 つに送信するメソッドがあります。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 に答える