我正在尝试将nodeJS和express.router中的文件发送到客户端。但是我得到了这个错误:
... Web服务器/ node_modules /表达/ LIB / response.js:412 if(done)return done(err); ^
TypeError:done不是函数 在/home/alex/project/webserver/node_modules/express/lib/response.js:412:22 在SendStream.ondirectory(/home/pthong/project/webserver/node_modules/express/lib/response.js:986:5) 在emitNone(events.js:67:13) 在SendStream.emit(events.js:166:7) 在SendStream.redirect(/home/alex/project/webserver/node_modules/express/node_modules/send/index.js:401:10) 在onstat(/home/alex/project/webserver/node_modules/express/node_modules/send/index.js:622:41) 在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);
我收到了下一个错误:
错误:ENOENT:没有这样的文件或目录,stat '/uploads/audiomessage-10207974875988003-1327917607235274-1461074839300.3gpp' 在错误(本机)
这是网络服务器的结构: 纤维网
答案 0 :(得分:3)
尝试res.sendFile(__ dirname + filepath / filename)
在您的情况下,这可能是:
res.sendFile(__dirname + "/uploads/" + req.params.filename);