【发布时间】:2019-03-31 15:39:48
【问题描述】:
我正在测试 MEAN 堆栈应用程序。我有一个处理文件上传的 Node.js 后端(通过fs/multer)。但是,当我尝试在生产中使用它时收到 503 错误。
本地一切正常。我正在使用 Heroku 的免费套餐;该层是否被锁定以不允许文件上传?
我目前正在尝试的上传(已经尝试了几次)只有 36kb (.png)。
查看我的日志并找到 503-
2018-10-26T20:39:24.352297+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=POST path="/media/upload" host=www.example.co.uk request_id=5388711c-bc99-4e42-9dbd-7b645fbefb43 fwd="90.222.69.255" dyno=web.1 connect=1ms service=130ms status=503 bytes=0 protocol=http
2018-10-26T20:39:24.306975+00:00 app[web.1]: (node:20) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
2018-10-26T20:39:24.307037+00:00 app[web.1]: (node:20) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
2018-10-26T20:39:24.318818+00:00 app[web.1]: fs.js:113
2018-10-26T20:39:24.318822+00:00 app[web.1]: throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
2018-10-26T20:39:24.318824+00:00 app[web.1]: ^
2018-10-26T20:39:24.318826+00:00 app[web.1]:
2018-10-26T20:39:24.318828+00:00 app[web.1]: Error: ENOENT: no such file or directory, mkdir './uploads/18'
【问题讨论】:
-
我已经通过这种方法检查目录是否存在(如果不存在则创建它) - 我相信问题可能来自我以特定方式指定文件路径,这是不可接受的(可能出于非常正当的原因)我在heroku上设置的节点部署......我将重写这个应用程序的负载以使用外部存储(感谢你的建议)所以我不得不离开那个怎么样!
标签: node.js heroku upload fs multer