将 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
,您可以简单地查询并在请求中存储您需要的信息 属性。
我有一个方法可以从数据库中获取查询结果,并将其中一个结果作为 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
,您可以简单地查询并在请求中存储您需要的信息 属性。