heroku 日志上的错误是由于 multer 模块
error on heroku logs is due to the multer module
heroku logs
2018-06-19T03:01:34.637807+00:00 app[web.1]:
/app/node_modules/mkdirp/index.js:90
2018-06-19T03:01:34.637822+00:00 app[web.1]: throw err0;
2018-06-19T03:01:34.637823+00:00 app[web.1]: ^
2018-06-19T03:01:34.637824+00:00 app[web.1]:
2018-06-19T03:01:34.637826+00:00 app[web.1]: Error: EROFS: read-only file
system, mkdir '/uploads'
2018-06-19T03:01:34.637827+00:00 app[web.1]: at Object.fs.mkdirSync
(fs.js:885:18)
2018-06-19T03:01:34.637828+00:00 app[web.1]: at Function.sync
(/app/node_modules/mkdirp/index.js:71:13)
2018-06-19T03:01:34.637829+00:00 app[web.1]: at new DiskStorage
(/app/node_modules/multer/storage/disk.js:21:12)
2018-06-19T03:01:34.637831+00:00 app[web.1]: at module.exports
(/app/node_modules/multer/storage/disk.js:65:10)
2018-06-19T03:01:34.637832+00:00 app[web.1]: at new Multer
(/app/node_modules/multer/index.js:15:20)
2018-06-19T03:01:34.637833+00:00 app[web.1]: at multer
(/app/node_modules/multer/index.js:95:12)
2018-06-19T03:01:34.637834+00:00 app[web.1]: at Object.<anonymous>
(/app/server.js:18:16)
2018-06-19T03:01:34.637835+00:00 app[web.1]: at Module._compile
(module.js:652:30)
2018-06-19T03:01:34.637836+00:00 app[web.1]: at Object.Module._extensions..js
(module.js:663:10)
2018-06-19T03:01:34.637837+00:00 app[web.1]: at Module.load
(module.js:565:32)
2018-06-19T03:01:34.637838+00:00 app[web.1]: at tryModuleLoad
(module.js:505:12)
2018-06-19T03:01:34.637839+00:00 app[web.1]: at Function.Module._load
(module.js:497:3)
2018-06-19T03:01:34.637840+00:00 app[web.1]: at Function.Module.runMain
(module.js:693:10)
2018-06-19T03:01:34.637842+00:00 app[web.1]: at startup
(bootstrap_node.js:188:16)
2018-06-19T03:01:34.637843+00:00 app[web.1]: at bootstrap_node.js:609:3
2018-06-19T03:01:34.715116+00:00 heroku[web.1]: State changed from starting
to
crashed
2018-06-19T03:01:34.697597+00:00 heroku[web.1]: Process exited with status 1
2018-06-19T05:52:50.354837+00:00 heroku[web.1]: State changed from crashed to
starting
2018-06-19T05:52:53.881152+00:00 heroku[web.1]: Starting process with command ` node server.js
我在 heroku 登录后收到此错误,我的应用程序不在 heroku 提供的 url 上 运行
但是 heroku web local 运行 完美!
帮忙解决这个问题!
谢谢!
您正在尝试写入 /uploads
,文件系统不允许这样做。
尝试写入 /tmp/uploads
或 /app/tmp/uploads
.
这可能应该是 /app/uploads
而不是 /uploads
。 /app
文件夹是应用程序的主目录,如果它是相对路径而不是绝对路径,那么它很可能最终位于 /app 文件夹中,但这可能取决于应用程序配置。
我想在这里指出另一个细节。在 dyno 上运行的文件系统应用程序是短暂的,这意味着在 dyno 运行 期间所做的任何更改都将丢失。我们不应该将上传的文件保存到我们的应用程序文件系统,而是使用某种持久性存储,如 Amazon S3。我们在这里有一个示例,说明如何使用 Nodejs 执行此操作。如果我们上传的文件只是临时文件,那么我们可以使用 dynos 文件系统。
__ 信用:蒂姆
heroku logs
2018-06-19T03:01:34.637807+00:00 app[web.1]:
/app/node_modules/mkdirp/index.js:90
2018-06-19T03:01:34.637822+00:00 app[web.1]: throw err0;
2018-06-19T03:01:34.637823+00:00 app[web.1]: ^
2018-06-19T03:01:34.637824+00:00 app[web.1]:
2018-06-19T03:01:34.637826+00:00 app[web.1]: Error: EROFS: read-only file
system, mkdir '/uploads'
2018-06-19T03:01:34.637827+00:00 app[web.1]: at Object.fs.mkdirSync
(fs.js:885:18)
2018-06-19T03:01:34.637828+00:00 app[web.1]: at Function.sync
(/app/node_modules/mkdirp/index.js:71:13)
2018-06-19T03:01:34.637829+00:00 app[web.1]: at new DiskStorage
(/app/node_modules/multer/storage/disk.js:21:12)
2018-06-19T03:01:34.637831+00:00 app[web.1]: at module.exports
(/app/node_modules/multer/storage/disk.js:65:10)
2018-06-19T03:01:34.637832+00:00 app[web.1]: at new Multer
(/app/node_modules/multer/index.js:15:20)
2018-06-19T03:01:34.637833+00:00 app[web.1]: at multer
(/app/node_modules/multer/index.js:95:12)
2018-06-19T03:01:34.637834+00:00 app[web.1]: at Object.<anonymous>
(/app/server.js:18:16)
2018-06-19T03:01:34.637835+00:00 app[web.1]: at Module._compile
(module.js:652:30)
2018-06-19T03:01:34.637836+00:00 app[web.1]: at Object.Module._extensions..js
(module.js:663:10)
2018-06-19T03:01:34.637837+00:00 app[web.1]: at Module.load
(module.js:565:32)
2018-06-19T03:01:34.637838+00:00 app[web.1]: at tryModuleLoad
(module.js:505:12)
2018-06-19T03:01:34.637839+00:00 app[web.1]: at Function.Module._load
(module.js:497:3)
2018-06-19T03:01:34.637840+00:00 app[web.1]: at Function.Module.runMain
(module.js:693:10)
2018-06-19T03:01:34.637842+00:00 app[web.1]: at startup
(bootstrap_node.js:188:16)
2018-06-19T03:01:34.637843+00:00 app[web.1]: at bootstrap_node.js:609:3
2018-06-19T03:01:34.715116+00:00 heroku[web.1]: State changed from starting
to
crashed
2018-06-19T03:01:34.697597+00:00 heroku[web.1]: Process exited with status 1
2018-06-19T05:52:50.354837+00:00 heroku[web.1]: State changed from crashed to
starting
2018-06-19T05:52:53.881152+00:00 heroku[web.1]: Starting process with command ` node server.js
我在 heroku 登录后收到此错误,我的应用程序不在 heroku 提供的 url 上 运行 但是 heroku web local 运行 完美!
帮忙解决这个问题! 谢谢!
您正在尝试写入 /uploads
,文件系统不允许这样做。
尝试写入 /tmp/uploads
或 /app/tmp/uploads
.
这可能应该是 /app/uploads
而不是 /uploads
。 /app
文件夹是应用程序的主目录,如果它是相对路径而不是绝对路径,那么它很可能最终位于 /app 文件夹中,但这可能取决于应用程序配置。
我想在这里指出另一个细节。在 dyno 上运行的文件系统应用程序是短暂的,这意味着在 dyno 运行 期间所做的任何更改都将丢失。我们不应该将上传的文件保存到我们的应用程序文件系统,而是使用某种持久性存储,如 Amazon S3。我们在这里有一个示例,说明如何使用 Nodejs 执行此操作。如果我们上传的文件只是临时文件,那么我们可以使用 dynos 文件系统。
__ 信用:蒂姆