私はtwitterの感情リーダーを構築しています。 res.send()
を追加する前にすべてうまくいき、その感情を記録しました。高速ルートで応答を送信しようとしたときにセキュリティハンドシェイクが失敗しました
これで、res.send()関数を追加しました。これは、データをangleに戻すときにエラーになります。角度は、エラー500としてそれを持って、私のノードのコンソールには、POST/postUsernameセキュリティハンドシェークが失敗しましたというエラーがあります。いくつかのライブラリのものを説明:TCPストリームの終わりを」
エクスプレスルート
router.post("/postUsername", function(req, res){
console.log(req.body.userName);
var client = new Twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});// client
client.get('statuses/user_timeline', {screen_name: req.body.userName, count:20}, function(error, tweets, response) {
tweet = analyzeIt.seperateData(tweets);
var document = language.document(tweet);
if (!error) {
var parsedScore;
var parsedMagnitude;
var finalScore;
var options = {
verbose: true
}; // options
document.detectSentiment(options, function(err, score) {
if (err) {
console.log(err);
} //if err
parsedScore = score.score;
parsedMagnitude = score.magnitude;
finalScore = analyzeIt.finalScore(parsedScore, parsedMagnitude);
console.log(finalScore);
});//detect sentiment
}//if not error
});//client get statuses
res.send(finalScore);
});//router post
角度コントローラ
app.controller('myController', function($scope, $http){
$scope.sendData = function() {
var data = { userName: $scope.userName };
console.log($scope.userName);
$http.post('/postUsername', data)
.success(function (data, status, headers, config) {
$scope.PostDataResponse = data;
})
.error(function (data, status, header, config) {
$scope.PostDataResponse = "Data: " + status;
});
};
});
期待される出力は次のようなものになるだろう "ポジティブこのユーザーの動向。"
何か助けていただければ幸いです!
'client.get'が応答する前にあなたの応答を送信しているようです。 'res.send(finalScore)'は 'client.get'コールバックの内部で呼び出されるべきではありませんか? 'detectSentiment'についても同じことが起こります。あなたはコールバックの外側で 'finalScore'にアクセスしようとしています –