Express.js如何使用Mongoose Schema上传文件(img,audio)

时间:2015-01-28 16:07:07

标签: javascript node.js mongodb file-upload express

从vernak2539的一些建议后,在哪里寻求解决方案。我使用带有强大和猫鼬的express.js的例子看起来像这样

var express = require('express');
var router = express.Router();
var post = require('./models');
var formidable = require('formidable');
var util = require('util');
var fs   = require('fs-extra');


router.post('/upload', function (req, res){

    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files) {
    res.writeHead(200, {'content-type': 'text/plain'});
    res.write('received upload:\n\n');
    res.end(util.inspect({fields: fields, files: files}));

    new post({title:fields.title, content:fields.content,
    image:files.image.name}).save(function (e, result) {
        console.log('new post saved', result)
      });
   });

    form.on('end', function(fields, files) {
    var temp_path = this.openedFiles[0].path;
    var file_name = this.openedFiles[0].name;
    var new_location = 'uploads/';
    fs.copy(temp_path, new_location + file_name, function(err) {
        if (err) {
            console.error(err);
        } else {
            console.log("success!")
        }
      });
   });
 });

所以基本上使用文件,我在图像字段中保存文件的名称,并使用更新的文件设置目录的静态路径,因此它可以用作src来img。

0 个答案:

没有答案