2016-06-30 10 views
0

ファイル名をサーバーに送信していて、api呼び出しが機能していることを確認するために何らかの応答を得ようとしていますが、パスが正しいにもかかわらず常に停止していますが、どこで間違っているのかわかりません。anglejsを使用してサーバーから応答を取り出す方法は?

angularjsFactory.js

getFile:function(file_name){ 
      return $http.get("/file?file_name="+file_name); 
     } 

server.js

var express = require('express'); 
var app = express(); 
var fs = require('fs'); 
app.use(express.static(__dirname + "/public")); 
var readDirectory = require('./readDirectory'); 

app.get('/file', function(req, res) { 
    var path = './ditLogs'; 
    var fileParam = req.query.file_name; 
    console.log(fileParam); 
    fs.readdir(path, function(err, items) { 
     items.forEach(function(items) { 
      if (fileParam === items) { 
       res.sendFile(items); 
       console.log(items); 
      } 
     }); 
    }); 
}); 
app.listen(3000, function() { 
    console.log('Example app listening on port 3000!'); 
    //console.log('app is printing data',obj); 
    //ditProducer.startProducer(); 
    setTimeout(function() { 
     ditconsumer.start(); 
    }, 2000); 

}); 
+0

あなたは、私が質問に渡していますように、パラメータを渡す方法があるURL – bhzag

答えて

1

サーバー上のあなたのルートは、角度の側からの呼び出しに比べ正しくありません。あなたはルートパラメータを使用していませんが、クエリ文字列です。

app.get('/file', function (req, res) { 
    // get filename using: req.query.file_name 
    res.send('FIle data'); 
}); 

それとも角度でこれを試してみて、サーバーのコードを維持することができます:

$http.get("/file/"+ encodeURI(file_name)); 
+0

の最後に「/」スラッシュを追加してみましたか? – hussain

+0

@hussain私の答えを – phnkha

+0

更新しました。ファイル名が/test.txtとして渡されているのを知りません。理由はわかりません。 – hussain

0

サーバー側のコードが間違って見える

はこれを試してみてください。

app.get('/file', function (req, res) { 
    console.log(req.query.file_name);//This will give you filename passed as url param 
    res.send('FIle data'); 
}); 
+0

私は何をしようとしているのかをより良く理解できるようにサーバーコードを更新しました – hussain

+0

このミドルウェアapp.get( '/ file'、function(req、res))を追加していないことを確認できますか? // getファイル名:req.query.file_name res.send( 'ファイルデータ'); });最後にapp.js –

+0

これは上にあるはずです: '// 404を捕まえてエラーハンドラに転送します。 app.use(function(req、res、next)){ var err = new Error( 'Not Found'); (err); }); 'あなたのapp.jsをチェックする必要があります –

関連する問題