Node.js JSFORCE:不支持文件从sfdc rest api下载文件并在本地磁盘上写入时显示消息
我一直在尝试使用JS force for node JS下载图像文件,并能够在检索数据并将其转换为base64格式后在本地创建一个文件,但如果显示“文件不受支持的消息”,则可以下载具有正确数据的javascript类型的文件 我正在查询salesforce中知识文章的附件字段 以下是我的疑问:Node.js JSFORCE:不支持文件从sfdc rest api下载文件并在本地磁盘上写入时显示消息,node.js,rest,salesforce,workbench,jsforce,Node.js,Rest,Salesforce,Workbench,Jsforce,我一直在尝试使用JS force for node JS下载图像文件,并能够在检索数据并将其转换为base64格式后在本地创建一个文件,但如果显示“文件不受支持的消息”,则可以下载具有正确数据的javascript类型的文件 我正在查询salesforce中知识文章的附件字段 以下是我的疑问: SELECT Body__c, Attachment__Name__s, Attachment__ContentType__s, Attachment__Length__s, Attachment__Bo
SELECT Body__c, Attachment__Name__s, Attachment__ContentType__s, Attachment__Length__s, Attachment__Body__s, Id, KnowledgeArticleId, Title, UrlName FROM Knowledge__kav
我正在将GET请求发送到文章的附件\uuuuuu\uu s字段
以下是我的节点js代码:
function createFile(attachmentBody,attachmntContentType,attachmntName){
var req = {
url: attachmentBody,
method: 'GET',
headers: {
"Content-Type": attachmntContentType
}
};
var test = conn.request(req, function(err, resp) {
if (err) {
console.log(err)
} else {
var fileBuffer=Buffer.from(resp, 'binary').toString('base64');
console.log('fileBuffer--- '+ fileBuffer);
fs.writeFile('./downloadedAttachments/'+attachmntName,fileBuffer,'base64', function(err){
if (err) throw err
console.log('File saved.')
})
}
});
}
请帮我解决这个问题。我成功下载了正确格式的文件。以下是我的更新代码:
函数createFile(knbid、AttachmentName、回调){
var file_here=conn.sobject('Knowledge__kav')。记录(knbid);
文件在此处。\retrieve(函数(err,response){
如果(错误){
返回控制台。错误(err);
回调(0)
}否则{
var obj=fs.createWriteStream('./downloadeAttachments/'+AttachmentName,{defaultEncoding:'binary'})
//log('blob--'+JSON.stringify(file_-here.blob('Attachment__-Body__-s'));
var stream=file_here.blob('Attachment__Body___s').pipe(obj);
stream.on('finish',函数(err,result){
如果(错误)
console.log('未下载'+knbid);
其他的
console.log('download-'+knbid);
})
}
});
}