コールバックで本当に時間がかかります。私は、画像を取得し、画像ファイルのMIMEタイプを決定するメソッドを実行する関数を持っています。そのMIMEタイプを取り、応答ヘッダーを設定してファイルを送信したいと思います。ファイルの種類を設定しコールバックを返すのは関数ではありません
.get(function(req,res){
var fileName = req.params.filename;
var UPLOAD_PATH = "__dirname + '/../uploads/images/'";
function getFileType(fileType, callback){
magic.detectFile(UPLOAD_PATH + fileName, function(err, fileType)
{
if (err) return callback(err);
callback(null, fileType);
});
}
var fileType = getFileType();
console.log('Get file type', fileType);
res.setHeader('Content-Type', fileType)
fs.createReadStream(path.join(UPLOAD_PATH, req.params.filename)).pipe(res)
});
ファイルタイプを取得するために実行
- に機能をご希望
- 戻り、そのファイルの種類今、私
res.setHeader()
へエラーが発生しましたTypeError: callback is not a function
あなたは 'var fileType = getFileType();'にパラメータを渡していません。あなたは関数を渡す必要があります。 'var fileType = getFileType(" someType "、function(arg){})'のように渡してみてください。 – Siva
関数を引数として渡す理由を説明してください。 –
ここであなたが話していることが分かったと思うhttps://youtu.be/qN0dkXj7jc0?t=6m16s これをまとめて試してみると、それが学習進歩のように感じているのであれば、 –