2016-04-25 23 views
0

nodeJSとexpress.routerからクライアントにファイルを送信しようとしています。しかし、私はこのエラーを取得:NodeJSとexpress.routerでファイルを送信する方法は?

...webserver/node_modules/express/lib/response.js:412 if (done) return done(err); ^

TypeError: done is not a function at /home/alex/project/webserver/node_modules/express/lib/response.js:412:22 at SendStream.ondirectory (/home/pthong/project/webserver/node_modules/express/lib/response.js:986:5) at emitNone (events.js:67:13) at SendStream.emit (events.js:166:7) at SendStream.redirect (/home/alex/project/webserver/node_modules/express/node_modules/send/index.js:401:10) at onstat (/home/alex/project/webserver/node_modules/express/node_modules/send/index.js:622:41) at FSReqWrap.oncomplete (fs.js:82:15)

をそして、これは私のコードです:

router.get('/getFile/:filename', function(req,res){ 
    res.sendFile(__dirname, '../uploads', req.params.filename); 
}); 

とHTTPリクエストがある: - :

http://dummy.com/getFile/audio-461074839300.3gpp

、私はこれをしようとした場合

res.sendFile('/uploads/'+ req.params.filename); 

次のエラーが表示されます。

Error: ENOENT: no such file or directory, stat '/uploads/audiomessage-10207974875988003-1327917607235274-1461074839300.3gpp' at Error (native)

これはウェブサーバの構造である: ウェブ

  • Webサーバ
  • ---
  • をserver.js ---アップロード
  • -----オーディオ461074839300.3 gpp
  • ----- audio-234.3gpp
+0

'sendFile'のマニュアルを読んでください。あなたのパラメータは間違っています。 – SLaks

答えて

3

が、これはあるかもしれないあなたのケースではres.sendFile(__ dirnameは+ファイルパス/ファイル名)

をお試しください:

res.sendFile(__dirname + "/uploads/" + req.params.filename); 
関連する問題