node.js
にmulter
を使用して、私の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;
は、私が行方不明ですか私が間違って何をやっているものを教えてください。
[もっと速い回答を得るために、どのような状況で「緊急」や他の類似のフレーズを追加することができますか?](// meta.stackoverflow.com/q/326569) - 要約は、ボランティアに対処する理想的な方法ではなく、おそらく回答を得ることに逆効果があります。これをあなたの質問に追加しないでください。 – halfer
ありがとう、私は次の時間に心に留めておきます:) –