如何使用Node.JS中的Multer向Mysql数据库添加位置路径
我是Node.JS开发的新手。最近我一直在努力解决这个问题:我想把照片上传到我项目中的“/uploads”目录中。我加了一张照片。但在添加照片服务器并用照片所有者id和描述将其位置路径保存到Mysql数据库时,我没有做到。我知道Multer只接受多部分表单数据 这是我的Node.Js代码如何使用Node.JS中的Multer向Mysql数据库添加位置路径,node.js,multer,Node.js,Multer,我是Node.JS开发的新手。最近我一直在努力解决这个问题:我想把照片上传到我项目中的“/uploads”目录中。我加了一张照片。但在添加照片服务器并用照片所有者id和描述将其位置路径保存到Mysql数据库时,我没有做到。我知道Multer只接受多部分表单数据 这是我的Node.Js代码 var models = require('../../models'); var express = require('express'); var router = express.Router(); va
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;
同样在《邮递员》中,我发送的请求如下:
在屏幕截图中,您将显示“body”选项卡。左边是“标题”选项卡。单击它并检查内容类型是否设置为“multipart/form data”,因为multer不会处理任何不属于此内容类型的数据。另一个奇怪的事实是,当我选择multipart/form data时,什么都不会发生。当我不选择任何内容类型时,它会工作。可能这取决于postman的版本,但您可以确定的是,当您将nothing设置为“content type”时,控制台会记录函数upload回调后req.headers['content-type']的值。