代码之家  ›  专栏  ›  技术社区  ›  Jerrell Jones

将JSON对象发送到Hapijs路由

  •  0
  • Jerrell Jones  · 技术社区  · 8 年前

    我有一个从数据库获取查询结果的方法,并将其中一个结果作为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');
          }
        });
      },
    
    2 回复  |  直到 8 年前
        1
  •  0
  •   Jerrell Jones    8 年前

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

        2
  •  0
  •   Marcos Bergamo    8 年前

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

    如果您使用 预处理程序 ,您可以简单地查询并将所需信息存储在请求属性中。

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