console.log(reply)media_id显示为undefined?
来源:4-4 第四天 上传临时素材之图片和视频
qq_十五人五_0
2016-05-26
weixin.js代码
else if(content==='5'){ var data=yield wechatApi.uploadMaterial('image',__dirname+'/2.jpg') reply={ type:'image', mediaId:data.media_id, } console.log(reply);
tpl.js代码
<% } else if(msgType==='image'){ %> <Image> <MediaId><![CDATA[<%= content.mediaId %>]]></MediaId> </Image> <% } else if(msgType==='voice'){ %>
wechat.代码
Wechat.prototype.uploadMaterial = function(type,filepath){ var that=this; var form={//构造一个表单 media : fs.createReadStream(filepath) } return new Promise(function(resolve,reject){//Promise 实例 that .fetchAccessToken() .then(function(data){ var url=api.upload+'access_token='+data.access_token+'&type='+type; request({method:'POST',url:url,formData:form,json:true}) .then(function(response){//请求, var _data=response.body;//response[1] if(_data){ resolve(_data) }else{ throw new Error('Upload material fails') } }) .catch(function(err){ reject(err); }) }) }) }
控制台输出
写回答
2回答
-
windows 系统下面应该是需要拼接一下正确的路径 __dirname+'/2.jpg') 改成 path.join(__dirname, '/2.jpg') 试试
然后打印下 data,不要打印 reply 看看拿到的 data 是什么数据
122016-05-27 -
AssassinX
2016-08-27
还有一种可能是根本就没有获取到需要的data。我就遇到过Api接口未授权的情况,返回的data有这么一段:errMsg: 'api unauthorized'
032016-11-22
相似问题