【发布时间】:2017-08-28 13:29:30
【问题描述】:
我在node.js 中使用multer 将文件(来自基于Angular 的客户端项目)上传到我的Heroku 服务器。一切正常,但是当 Heroku 服务器重新启动或关闭时,所有上传的文件都会消失,URL hits 返回 'Not Found'。
这是我上传文件的代码:
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;
告诉我我错过了什么或我做错了什么。
【问题讨论】:
-
请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。
-
谢谢,下次我会记住的:)