执行到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
相似问题