0
私はNode.JSの新機能です。最近、私はその問題に苦しんでいます:プロジェクトの "/ uploads"ディレクトリに写真をアップロードしたいと思います。私は写真だけを追加しました。しかし、それが写真サーバーを追加し、写真所有者のIDとMysql DBへの説明でその場所のパスを保存するに来たとき、私はそれを作っていませんでした。私は、マルチター形式のデータだけを受け入れることを知っています。Node.JSでMulterを使用してMysql DBにロケーションパスを追加するには
ここが私のNode.jsコードがポストマンでも
var models = require('../../models');
var express = require('express');
var router = express.Router();
var multer = require('multer');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json({limit:'50mb'}));
app.use(bodyParser.urlencoded({extended:true, limit:'50mb'}));
const uuidv1 = require('uuid/v1');
var owner_id;
var description;
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/')
},
filename: function (req, file, cb) {
const photo_id = uuidv1();
cb(null, photo_id + '.jpg');
addPhotoToDb(photo_id,owner_id,description);
}
});
function addPhotoToDb(photo_id,owner_id,description) {
models.PHOTOS.create({
photo_id: photo_id,
description: description,
owner_id: owner_id,
location_path: 'uploads/' + photo_id + '.jpg'
})
}
var upload = multer({ storage: storage }).single('photo');
router.post('/upload', function (req, res) {
//This part is problematic I tried so many things
//owner_id=req.files
//description=req.files
upload(req, res, function (err) {
if (err) {
}
res.json({
success: true,
message: 'Image uploaded!'
});
})
});
module.exports = router;
である私はそのような要求を送信しています:あなたのスクリーンショットで https://i.stack.imgur.com/04Qz1.png
私がmultipart/form-dataを選択したときのもう一つの奇妙な事実は何も起こりません。私が何もコンテンツタイプを選択しないと、それは動作します。 https://i.imgur.com/83QSjKg.png –
おそらくそれはpostmanのバージョンに依存するかもしれませんが、確かに確認できるのは、req.headers ['content-type']の値が後であることをログに記録することです何も "content-type"として置いたときに関数のコールバックがアップロードされます。 –