如何使用Node.JS中的Multer向Mysql数据库添加位置路径

如何使用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

我是Node.JS开发的新手。最近我一直在努力解决这个问题:我想把照片上传到我项目中的“/uploads”目录中。我加了一张照片。但在添加照片服务器并用照片所有者id和描述将其位置路径保存到Mysql数据库时,我没有做到。我知道Multer只接受多部分表单数据

这是我的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;
同样在《邮递员》中,我发送的请求如下:

在屏幕截图中,您将显示“body”选项卡。左边是“标题”选项卡。单击它并检查内容类型是否设置为“multipart/form data”,因为multer不会处理任何不属于此内容类型的数据。

另一个奇怪的事实是,当我选择multipart/form data时,什么都不会发生。当我不选择任何内容类型时,它会工作。可能这取决于postman的版本,但您可以确定的是,当您将nothing设置为“content type”时,控制台会记录函数upload回调后req.headers['content-type']的值。