好的,你可能会告诉我这个节点js lark有点新,但是我已经被困了一段时间了,我已经搜索了高低,我能理解的答案。
我创建了一个简单的json服务Twitter服务器进行一些测试(我用/tweets.json?search=SOMETHING调用并且工作正常),但我不知道如何在Twitter响应错误时停止此应用程序崩溃
显然,如果查询字符串不在网址中,或者Twitter API中存在任何其他问题,那么就会出现错误,但是我怎样才能阻止这个非常简单的应用程序在每次发生时崩溃?
我知道这可能是非常基本的,所以提前道歉。
var Twit = require('twit');
var express = require("express");
var app = express();
var T = new Twit({ XXXXX KEYS XXXXXX });
app.get("/tweets.json", function(req, res) {
T.get('search/tweets', { q: req.query.search, count: 100, result_type: 'popular' }, function(err, reply) {
if(err){
res.jsonp(err);
}
res.jsonp(reply);
})
});
app.listen(process.env.PORT || 3000);
console.log("listening on port 3000");
答案 0 :(得分:0)
你有一个双重回调。这一点:
if (err) {
res.jsonp(err);
}
res.jsonp(reply);
发生错误时,两次都会调用res.jsonp
。要纠正该部分,您需要在分支中添加一个回报:
if (err) {
return res.jsonp(err);
}
res.jsonp(reply);
res.jsonp
也是错误的返回错误的方法。也许是这样的事情:
if (err) {
return res.send(500, err.message); // Status code 500 with a message.
}
res.jsonp(reply);
会更好。