Parse platform 解析服务器返回";{quot;code";:111,“error";:“这不是一个有效的文件”}”;为了得到而不是得到。为什么?

Parse platform 解析服务器返回";{quot;code";:111,“error";:“这不是一个有效的文件”}”;为了得到而不是得到。为什么?,parse-platform,parse-server,Parse Platform,Parse Server,我正在从Parse.com迁移到Parse服务器,无法更新任何数据。GET工作正常,无需修改以前使用Parse.com的任何现有代码 对于任何PUT,我都会得到一个变体: { method:"PUT" path:"/parse/classes/Order/WzxHamIlOq" status:400 text:"{"code":111,"error":"This is not a valid File"}" } 进入/parse/classes/Order/Wz

我正在从Parse.com迁移到Parse服务器,无法更新任何数据。GET工作正常,无需修改以前使用Parse.com的任何现有代码

对于任何PUT,我都会得到一个变体:

{
    method:"PUT"
    path:"/parse/classes/Order/WzxHamIlOq"
    status:400
    text:"{"code":111,"error":"This is not a valid File"}"
}
进入
/parse/classes/Order/WzxHamIlOq
非常有效

我查阅了111代码,文档中唯一引用它的地方似乎不适用

以下是不起作用的代码:

    OrderController.updateOrder = function(req, res) {
        var order = req.body;
        superagent
            .put(config.API_URL + '/classes/Order/' + order.objectId)
            .set('X-Parse-Application-Id', config.keys.appId)
            .set('X-Parse-Master-Key', config.keys.master)
            .send({
                'orderNo': order.orderNo,
                'poNO': order.poNO,
                'invoiceNo': order.invoiceNo,
                'dueDate': order.dueDate,
                'dateIn': order.dateIn,
                'jobName': order.jobName,
                'notes': order.notes,
                'salesmanID': {
                    __type: 'Pointer',
                    className: 'Salesman',
                    objectId: order.salesmanID.objectId
                },
                'costReview': order.costReview,
                'inProduction': order.inProduction,
                'invoice': order.invoice,
                'paid': order.paid,
                'commission': order.commission,
                'productionNotes': order.productionNotes,
                'proof': {
                    __type: 'File',
                    name: order.proof.name
                },
                'tags': order.tags,
                'artUrl': order.artUrl
            })
            .end(function(err, results){
                if(err) {
                    res.status(500).send({error: err});
                }else if(results.badRequest){
                        console.error(results.error);
                        res.status(results.status).send({error: results.error});

                }else {
                    res.send(results.body);
                }
            });
    };
以下是通往同一条可行路径的方法:

    OrderController.getOrderInfo = function(req, res) {
        superagent
            .get(config.API_URL + '/classes/Order/' + req.params.id)
            .set('X-Parse-Application-Id', config.keys.appId)
            .set('X-Parse-Master-Key', config.keys.master)
            .query('include=salesmanID,imprintTypeID,customerID')
            .query('where')
            .end(function(err, results) {
                if(err) {
                    console.log(err);
                } else if(results.badRequest){
                    console.error(results.error);
                    res.status(results.status).send({error: results.error});

                }else {
                    res.send(results.body);
                }
            });
    };
是的,使用超级代理而不是sdk是愚蠢的。是的,我确实继承了这段代码


有人能告诉我正确的方向吗?

问题是Parse db迁移工具不支持将文件从Parse中传输出来

github上存在一个活跃的问题,但还没有正式的解决方案:

以下几行是导致问题的原因:

'proof': {
    __type: 'File',
    name: order.proof.name
},

问题是Parse-db迁移工具不支持从Parse中传输文件

github上存在一个活跃的问题,但还没有正式的解决方案:

以下几行是导致问题的原因:

'proof': {
    __type: 'File',
    name: order.proof.name
},

我想问题是,当您试图保存行中的文件时,我会尝试删除您试图保存的所有行,并尝试找出哪个行返回错误。。。或者,由于权限的原因,您必须使用主密钥?文件是否大于20MB?谢谢您的评论。我只需要一个属性就可以保存。将从这里开始工作。我认为问题在于,当您尝试在行中保存文件时,我将尝试删除您尝试保存的所有行,并尝试找出哪个行返回错误。。。或者,由于权限的原因,您必须使用主密钥?文件是否大于20MB?谢谢您的评论。我只需要一个属性就可以保存。从这里开始工作。