【发布时间】:2016-04-30 11:03:28
【问题描述】:
我必须从网页上抓取一个密钥,以便以后用作 cookie。那部分有效。但是因为请求是异步的,所以不会处理错误。我想确保错误通过中间件链传递。但我无法理解这个问题。感谢您的帮助。
app.use('/', makeLoginCookie, function (req, res, next){
console.log('My app.use() starts here.');
//console.log('makeLoginCookie: %s', err);
next();
});
这是函数
function makeLoginCookie(req, res, next) {
httpOptions = {
url: site.url,
headers: {
Cookie: null
}
}
// Get HIDDEN key, build login cookie
request(httpOptions, function(error, response, body) {
if (!error && response.statusCode == 200) {
//console.log(body)
var match = body.match( /\<INPUT TYPE=HIDDEN id=\"key\", value=\"([0-9a-f]+)\"\>/i );
var key = match[1]
var encrypted = sha1(key + site.username + site.password);
loginCookie = "username=" + key + ";password=" + encrypted;
next();
} else {
console.log("Connect failed %s" , error);
//err = new Error("Can't connect");
next();
}
});
};
【问题讨论】:
标签: node.js asynchronous express