TypeError:无法读取Object.Parse.File.save

时间:2015-08-30 00:04:24

标签: javascript parse-platform sails.js

我将Sails Js用于我的项目,并使用Parse。 不起作用的是我无法将文件上传到Parse。 互联网上有很多相同的主题,但总是没有解决!

到目前为止一切正常:

var newFile = new Parse.File(fileName, file, contentType);
// fileName = blue.jpg, file = { JSON of all the file's information }, contentType = 'image/jpeg',
// newFile = { _name: 'blue.jpg' }
// so my HTML form works.

// I tried (1)
newFile.save().then(function() {
// The file has been saved to Parse.
}, function(error) {
// The file either could not be read, or could not be saved to Parse.
});

// I tried (2)
fs.readFile(filePath, function (err, data) {
    var newFile = new Parse.File('my_path_I_want...', data);
    newFile.save().then(function(file) {
    }, function(error) {
    });
});

问题始终如一:

myApp/node_modules/parse/build/parse-latest.js:4438
self._previousSave = self._source.then(function(base64, type) {
                                     ^
TypeError: Cannot read property 'then' of undefined at Object.Parse.File.save      (myApp/node_modules/parse/build/parse-latest.js:4438:42)

我真的不知道该做什么/现在尝试。

Here他们说这是一个错误,但我不相信,自2014年以来没有上传..

here是Parse File的Parse文档部分。

你有个主意吗?

2 个答案:

答案 0 :(得分:1)

您是否正在检查实际文件是否存在?

ImageExist(url){
   var img = new Image();
   img.src = url;
   return img.height != 0;
}

从您上传的地方,检查路径是否也没有中断。

答案 1 :(得分:1)

我终于成功了:

var fs = require('fs');
var fileData = fs.readFileSync(filePath);
fileData = Array.prototype.slice.call(new Buffer(fileData), 0)
var newFile = new Parse.File(fileName, fileData);

Parse想要一个数据数组,所以我可以理解为什么会有效,但是在文档编写中,我们也可以用我在开头发布的方式来做。 也许"文件"变量与sails js不一样。