【问题标题】:File Upload in MEAN Stack with GridFS: Getting Errors使用 GridFS 在 MEAN Stack 中上传文件:出现错误
【发布时间】:2015-07-01 19:19:30
【问题描述】:

朋友们加油!
我正在尝试使用 GridFS 在我的MEAN Application 中上传文件。我正在使用本教程http://www.codetutorial.io/file-upload-gridfs-mean-stack-meanjs/

在实现它并检查了十次之后,我仍然得到这个错误:TypeError: Cannot read property "filefield" of undefined in the upload.server.controller.js。但在我看来,文件字段已正确传递给路由和控制器。

这是我的 html 表单:

<form action="/upload/" method="post" enctype="multipart/form-data">
<input type="file" name="filefield">
<button type="submit">Hochladen</button>
</form>

路线:

var upload = require ('./controllers/upload.server.controller');
app.route('/upload/:filename')
    .get(upload.read);
app.route('/upload/')
    .post(upload.create);

以及控制器的创建部分:

'use strict';

var mongoose = require('mongoose'),
    _ = require ('lodash');
var Grid = require('gridfs-stream');
Grid.mongo = mongoose.mongo;
var gfs = new Grid(mongoose.connection.db);

exports.create = function(req, res) {

    var part = req.files.filefield;

    var writeStream = gfs.createWriteStream({
        filename: part.name,
        mode: 'w',
        content_type:part.mimetype
    });

    writeStream.on('close', function() {
        return res.status(200).send({
            message: 'Success'
        });
    });

    writeStream.write(part.data);

    writeStream.end();
};

有人知道如何解决此错误吗?
来自德国的问候,
大卫

【问题讨论】:

    标签: javascript angularjs mongoose mean gridfs


    【解决方案1】:

    你可能已经放置了

      app.use(busboyBodyParser()); 
    

    最后。试着把它放在上面。它会起作用的。

    【讨论】:

      【解决方案2】:

      可能您忘记在 index.js 文件中包含正文解析器:

      busboyBodyParser = require('busboy-body-parser'),
      app.use(busboyBodyParser());
      

      没有它,req 对象中就没有文件。

      【讨论】:

      • 你能调试或控制台记录 req.files 中的内容吗?
      • 我放了一个console.log(req.files);直接在 var part = req.files.filefield 上方,我得到控制台错误。得到“未定义”
      • 所以 html 表单都不会发送文件或正文解析器不起作用。尝试通过 curl 上传文件,例如 curl -XPOST -F ffilefield=@path/to/file url/upload
      • TypeError 在“Object.exports.create [as handle] 和“Function.proto.process_params”抛出
      猜你喜欢
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 2016-09-01
      • 2023-03-30
      • 2013-08-20
      相关资源
      最近更新 更多