javascript
controller.action('image', function * (next) { var mediaId, token, response, url; var base64, type, prefix; this.checkQuery('mediaId').notEmpty(); // 参数验证 if (this.errors) { this.body = kit.wrapResponse(true, kit.popValue(this.errors[0])); return; }; token = yield base.getAccessToken(); // 获取access_token url = resource.genFetchImage(token, mediaId); // 请求图片的链接 response = yield request.get(url); // 通过co-request向微信服务器发出请求 // 处理响应,组合base64图片 type = response.headers["content-type"]; prefix = "data:" + type + ";base64,"; base64 = new Buffer(response.body, 'binary').toString('base64'); this.body = prefix + base64; yield next; });
以上代码是我写的控制器,功能是:从微信服务器下载图片,并将其转换成base64格式的。代码是成功执行了,可返回的结果在浏览器img标签里显示不出来。
运行环境
- node v0.12.2
- koa v0.20.0
- controller是我自己写的类
调试+Google+Baidu一晚,还是没能解决。不过调用 fs.writeFile(filename, data[, options], callback) 接口能够下载图片下来。
小白一枚,各路大侠尽情喷我!
nodejs 不深也不浅得了解下编码 事后总结!