【发布时间】:2016-11-26 02:18:55
【问题描述】:
我编写了一个 Hapi.js 路由来接收上传的文件,并使用 Postman 成功调用了它。现在我想保存文件。
我该怎么做
- 获取文件扩展名?
- 将文件保存到磁盘?
这是我的路线:
{
method: 'POST',
path: this.config.apiPrefix + 'uploadprofilephoto',
config: { payload: { maxBytes: 10485760, /* 10 MB */ output: 'stream', parse: true } },
handler: (request: hapi.Request, reply: hapi.IReply) => {
const result = new Promise<string>( async (resolve, reject) => {
try {
this.profilePhotoRouteHelper.savePhotoAndUploadToAws(jwtData.userId, request.payload['image']);
resolve(responseHelper.getSuccessResponse<string>(null, newJwt));
}
catch (error) {
log.error(error);
resolve(responseHelper.getErrorResponse(ResponseErrorCode.unknownError));
}
});
reply(result);
}
以及如何保存的想法:
fs.writeFile(filename, data, [encoding], () => { } );
但如果可能,我宁愿使用承诺并等待。
这是上传的文件:
【问题讨论】:
-
由于词法 this,我不会将箭头函数用于处理函数
-
我们在整个应用程序中几乎只使用箭头功能,没有遇到任何问题
-
它们不应该与处理程序一起使用,因为您会从 hapi 中丢失 this 上下文
标签: javascript node.js hapijs