我在node.js中使用multer将文件(来自基于Angular的客户端项目)上传到我的Heroku服务器。一切工作正常,但当Heroku服务器重新启动或关闭时,所有上传的文件消失,URL hits返回'Not Found'。当heroku服务器重新启动时,使用multer上传的文件消失
这是我上传文件代码:
var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var multer = require('multer');
var pool = require('./dbconnection');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/app/public/images/postImages/')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now()+'.jpg')
}
})
var upload = multer({ storage: storage })
router.post('/postImages', upload.single('image'), function(req, res) {
var userId = req.body.userId;
var postTitle = req.body.postTitle;
var postDesc = req.body.postDesc;
var postLat = req.body.postLat;
var postLng = req.body.postLng;
var postMediaType = req.body.postMediaType;
var postMediaFileName = req.file.filename;
var postMediaFilePath = req.file.destination;
var postMediaFileURL = req.file.path;
postMediaFileURL = postMediaFileURL.substring(postMediaFileURL.indexOf('images/'), postMediaFileURL.length);
var inserts = [postTitle, postDesc, postLat, postLng, postMediaType, postMediaFileName, postMediaFilePath, postMediaFileURL, userId];
var sql = "INSERT INTO posts (postTitle, postDesc, postLat, postLng, postMediaType, postMediaFileName, postMediaFilePath, postMediaFileURL, userId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
sql = mysql.format(sql, inserts);
console.log(sql);
pool.getConnection(function(err, connection) {
connection.query(sql, function(error, results) {
connection.release();
res.json(results);
if(error) throw error;
});
});
});
module.exports = router;
告诉我我在丢失或我在做什么错。
+0
请阅读[在什么情况下,我可以添加“紧急”或其他类似的短语到我的问题,以获得更快的答案?](/ meta.stackoverflow.com/q/326569) - 摘要是,这不是解决志愿者问题的理想方式,而且可能对获得答案起反作用。请不要将这添加到您的问题。 –
+0
谢谢,下次我会记住:) –