【发布时间】:2022-11-03 02:47:39
【问题描述】:
我有这个下面的函数,我在其中调用另一个函数"uploadContentVersion",它是一个请求 POST。这还包括我在下面的函数中捕获的回调。
我面临的问题是这条线"console.log(data)" 给了我这样的结果
{"id":"11111111111111","success":true,"errors":[]}
但是当我尝试打印console.log(data.id) 时,我变得不确定。不确定我在哪里做错了。
const createFileFromJSON = async() => {
if (fs.existsSync('./templates/officetemplate.docx')) {
const templateFile = fs.readFileSync('./templates/officetemplate.docx');
//console.log(templateFile.toString('utf8'))
var doc = await handler.process(templateFile, data);
// 3. save output
fs.writeFileSync('./templates/' + data.accPlanId + '.docx', doc);
uploadContentVersion(sfdc_token.access_token, sfdc_token.instance_url, data.accPlanId, function(data) {
var conn = new sf.Connection({});
conn.initialize({
instanceUrl: sfdc_token.instance_url,
accessToken: sfdc_token.access_token
});
console.log(data) -- > {
"id": "11111111111111",
"success": true,
"errors": []
}
console.log(data.id) -- > undefined
attachFileToRecord(conn, data)
})
// console.log(contentversionres)
} else {
console.log('Template is not present..')
}
var uploadContentVersion = function(token, instUrl, fname, callback) {
var options = {
'method': 'POST',
'url': some url,
'headers': {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"VersionData": fs.readFileSync(`./templates/${fname}.docx`).toString('base64')
})
};
request(options, function(error, response) {
if (response.statusCode === 201) {
callback(response.body);
}
if (error) throw new Error(error);
});
}
【问题讨论】:
-
我要检查的第一件事是 JSON 是否符合您的预期。没有它,错误可能在它的生成中,或者在您的请求中。
-
{"id":"11111111111111","success":true,"errors":[]} --> 这是我收到的正确 JSON。
-
对不起,错过了。
标签: javascript node.js