如何在node js(express),multer,mysql中发布带有文件上传的表单

时间:2018-11-06 10:07:43

标签: mysql node.js express upload multer

所以和其他人一样,我也有问题。

我有代码在文件'controller.surat.masuk.js'中创建新数据到我的mysql表'surat_masuk',如下:。

exports.post = (req, res) => {

    console.log('Post new Surat Masuk: ' + JSON.stringify(req.body));
    suram.create({
    
       tgl_terima_surat: req.body.tgl_terima_surat,
       nomor_surat: req.body.nomor_surat,
       tgl_surat: req.body.tgl_surat,
       id_pengirim: req.body.id_pengirim,
       perihal: req.body.perihal,
       kategori_surat: req.body.kategori_surat,
       summary_surat: req.body.summary_surat,
       att_surat: req.file,
       follow_up: req.body.follow_up,
       target_date: req.body.target_date,
       status_unit: req.body.status_unit,
       status_compliance: req.body.status_compliance
    }
       

    ).then(suram => {
        res.send(suram);
    })
}

我在service.js中这样称呼它:

const app = express();

const bodyParser = require('body-parser');


const surat_masuk = require('./controller/controller.surat_masuk');

//SURAT MASUK
app.post('/postsuram/', surat_masuk.post);

“ att_surat”字段实际上是一个文件(pdf,doc,xls,jpeg),因此必须上传。

我只是不知道如何创建新数据+上传文件。

我尝试搜索教程,但仅上传了一个文件,没有其他字段。谁能帮我?谢谢。

这是模型:

module.exports = (Sequelize, type)=>{
    return Sequelize.define('surat_masuk', {
        'id_surat_masuk' : {
            type: type.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        'tgl_terima_surat': {
            type: type.DATE,
            defaultValue: type.NOW
        },
        'nomor_surat': type.STRING,
        'tgl_surat': type.DATE,
        'id_pengirim': type.BIGINT,
        'perihal': type.STRING,
        'kategori_surat': type.STRING,
        'summary_surat': type.STRING,
        'att_surat': type.BLOB('long'),
        'follow_up': type.INTEGER,
        'target_date': type.DATE,
        'status_unit': type.INTEGER,
        'status_compliance': type.INTEGER
    }, {
        freezeTableName: true
    })
}

0 个答案:

没有答案