回调真的很难。我有一个将拍摄图像的函数,通过一个方法运行它来确定图像文件的mime类型。我想采用该mime类型并设置响应头并发送文件。
inline void set_payload(const ::google::protobuf::Message& somePayload)
想要
.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()
答案 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)
});