执行到request向微信服务器发送请求后,返回来的值是undefined
来源:
杨洋1989
2016-08-21
如下代码第二个then返回undefined,但是用开发者调试工具上传临时素材却可以成功上传并获得mediaId,说明accesstoken应该没问题,相关代码如下:
.then(function(data){
var url = api.upload + '&access_token=' + data + '&type=' + type;
console.log(url,form)
request({
method:'POST',
url:url,
json:true,
formData:form,
})
})
.then(function(res){
console.log('返回的:',res);
})在第一个then中打印出的url与调试工具中的url相同,说明url正确。问题可能出在form上,我将form打印出来如下:
{ media:
ReadStream {
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 65536,
buffer: [Object],
length: 65083,
pipes: null,
pipesCount: 0,
flowing: null,
ended: true,
endEmitted: false,
reading: false,
sync: false,
needReadable: false,
emittedReadable: true,
readableListening: false,
resumeScheduled: false,
defaultEncoding: 'utf8',
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: true,
domain: null,
_events: { end: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
path: 'C:\\Users\\Administrator\\node\\task\\day05\\wechat\\金刚狼.jpg',
fd: 3,
flags: 'r',
mode: 438,
start: undefined,
end: undefined,
autoClose: true,
pos: undefined }
}请老师帮忙分析下
写回答
2回答
-
joking_zhang
2016-08-22
var data = response.[1];
换成
var data = response.body;
试一下00 -
Scott
2016-08-21
把 request 发出请求前后的参数,以及返回的整个数据做一个检查,不大可能微信服务器返回一个单一的值是 undefined,如果失败,会有一堆其他的数据信息错误提示等等
022016-08-21
相似问题