我浏览了博客,并在Google上搜索了一下,但是我不确定为什么会有这个问题以及如何解决。我正在使用的应用程序使用了许多生成器功能和koa路由器。这是一个老项目,我对节点没有太多的经验,对Java则没有更多的经验。无论如何,我觉得这段代码应该工作,但事实并非如此。我创建了一个上传文件的终结点端点。当我在邮递员中命中端点时,我看到服务器接收了文件,但是端点从不返回响应,邮递员只是挂了。谁能告诉我为什么这不起作用?如何返回this.body并返回200响应。
要命中的端点
apiV1.post('/s3-file/upload/:path/:geo', s3Files.uploadFileToBucket);
处理文件上传的逻辑
const parse = require('co-busboy');
function * uploadFileToBucket () {
const parts = parse(this);
let part;
while (part = yield parts()) {
if (part.length) {
console.warn('FileUpload was not a parsable file with request: ', this.request);
} else {
// otherwise, it's a stream
// part.pipe(fs.createWriteStream('some file.txt'))
this.body = part._readableState.buffer.head.data.toString();
}
}
}
我不明白为什么这不起作用。当我在同一项目中的一些get请求中将内容分配给this.body时,那么get端点可以正常工作。如何使此发布请求返回200响应以及上传的文件内容?