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