2016-06-30 3 views
0

私はNodeJSサーバーで作業していて、ファイル解析を実行して結果をAngularJSクライアントに送り返しています。私は以下のルータコールを持っています:NodeJSプロンプトがres.send(データ)の上でハングする

router.post('/parseFile', upload.single('file'), function(req, res, next) {           
let response = response_template                    
let promise = new Promise(function(resolve, reject) {               
    commands.parseFile(req.file.filename,              
         req.file.originalname,             
         resolve,                
         reject);                
})                            
    .then(function(result) {                     
     console.log("This is working", result);                 
     res.status(200);                      
     res.send(data);                       
     console.log("Should be here...?");                  
    }, function(error) {                      
     console.log("There was an error", error);                
     res.status(400);                      
     res.send(data);                   
    });                           

});

ログステートメントは、"これは動作しています"と表示され、結果も出力されます。ただし、「ここにいるはずですか?」と表示されません。 res.send(data)の後ろのステートメント

データも送信されず、クライアントからは応答が受信されなかったと表示されます。 Promiseのドキュメントを見てきましたが、私が間違っていることを理解できません。どんな助けでも本当に感謝しています。ありがとう!

答えて

1

dataは定義されていません。あなたのコードのその部分が投げられており、例外が飲み込まれています。おそらくresultを使用することを意味しますか?

+0

OH MY GOD。恥知らずな点を挿入してください。ありがとうございました。クライアントまたはサーバーでエラーメッセージが表示されませんでした。約束にうまく使えるツールはありますか? – Hsoule

+0

さて、 'then'ハンドラに' debugger'文を挿入し、node-inspectorを使ってステップスルーすることができます。 – daf

+0

そうですが、nullを返すとJSONが正しくフォーマットされず、クライアントにエラーが登録されるはずですが、何も表示されないと思っていました。 – Hsoule

関連する問題