我正在编写一个关于使用Express.js的REST。API需要接受来自客户端的视频文件,并将其上传到cloudinary。当我使用api将文件返回给客户端(作为测试)时,一切都很完美。然后,当我试图将同一个文件上传到cloudinary时,我会得到一个错误。错误说:
"file.match is not a function"我不知道file.match到底是什么,也不知道它为什么会给我带来麻烦。如果其他人有这个问题,你是怎么解决的?下面是给我带来问题的代码:
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
var cloudinary = require('cloudinary');
cloudinary.config({
cloud_name: 'name',
api_key: 'key',
api_secret: 'secret'
});
module.exports.cloudinary = cloudinary;发布于 2016-12-01 19:03:32
我解决了这个问题。这对克劳迪纳里来说不是个问题。关键是只发送文件的位置。
工作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;发布于 2016-11-27 13:03:08
你是否试图将resource_type指定为video -
cloudinary.uploader.upload(req.files,
function(result) {console.log(result); },
{ resource_type: "video" });如果您正在上传图片和视频,您可以使用auto作为resource_type。
https://stackoverflow.com/questions/40796718
复制相似问题