只返回Callback不是一个函数

时间:2017-06-08 06:36:07

标签: javascript

回调真的很难。我有一个将拍摄图像的函数,通过一个方法运行它来确定图像文件的mime类型。我想采用该mime类型并设置响应头并发送文件。

inline void set_payload(const ::google::protobuf::Message& somePayload)

想要

  1. 运行该函数以获取文件类型
  2. 设置文件类型
  3. 将该文件类型返回到.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) });
  4. 现在我遇到了错误res.setHeader()

1 个答案:

答案 0 :(得分:0)

定义您的回拨功能。否则将无法定义。

.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); 
  });
}
//Your Call back function defenition
function callback(x, type ){
 // Show him the file type.
}

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)

});