2016-11-25 165 views
0

我在使用Express.js編寫REST API。 API需要接受來自客戶端的視頻文件並將其上傳到雲端。當我使用api將文件返回給客戶端(作爲測試)時,一切正常。當我然後嘗試上傳相同的文件到cloudinary我得到一個錯誤。錯誤說:Cloudinary文件上傳錯誤

"file.match is not a function" 

我不知道什麼file.match即使是爲什麼它給了我一個問題。如果其他人有這個問題,你是如何解決它的? 下面是給我的問題代碼:

var cloudinary = require('cloudinary'); 

cloudinary.config({ 
    cloud_name: 'name', 
    api_key: 'key', 
    api_secret: 'secret' 
}); 

module.exports.cloudinary = cloudinary; 
+0

因爲cloudinary.js是你自己的代碼,更喜歡你表明代碼以及 – Simon

+0

@Simon伊夫添加上述 – TheNewGuy

回答

1

我能解決這個問題。這對Cloudinary來說並不是問題。關鍵是隻發送文件的位置。

WORKING routes.js

var express = require('express'); 
var cloudinary = require('../cloudinary.js').cloudinary; 
var router = express.Router(); 

router.post('/upload', function(req, res, next) { 
    var fileGettingUploaded = req.files.fileToUpload.path; 

    cloudinary.uploader.upload(fileGettingUploaded, function(result) { 
    console.log(result); 
    }); 
}); 

module.exports = router; 
0

你嘗試指定

app.js

var express = require('express'); 
var formidable = require('express-formidable'); 
var app = express(); 

app.use(formidable()); 

var routes = require('./routes'); 
app.use('/routes', routes); 

var port = process.env.PORT || 3000; 

app.listen(port, function() { 
    console.log('Express server is listening on port ' + port); 
}); 

routes.js

var express = require('express'); 
var cloudinary = require('../cloudinary.js').cloudinary; 
var router = express.Router(); 

router.post('/upload', function(req, res, next) { 
    cloudinary.uploader.upload(req.files, function(result) { 
    console.log(result); 
    }); 
}); 

module.exports = router; 

cloudinary.js resource_type作爲video -

cloudinary.uploader.upload(req.files, 
    function(result) {console.log(result); }, 
    { resource_type: "video" }); 

如果您上傳的圖片和視頻可以使用autoresource_type

+0

同樣的錯誤仍然出現的代碼,「file.match是不是功能「 – TheNewGuy

+0

您能否請您打開[支持票](https://support.cloudinary.com/hc/en-us/requests/new)並分享視頻文件供我們進一步調查? 請參考這篇文章.. –

+0

我照你問的 – TheNewGuy