2014-12-05 57 views
1

我在獲取帶有節點的服務器端文件時遇到了問題。用nodejs,express和angular使用dropzone進行文件上傳

具體地訪問請求數據,(req.files或req.body)

這裏時有一些片斷,如果有人有任何意見。

HTML

<form action="/upload" class="dropzone" drop-zone id="file-dropzone"></form> 

角控制器

'use strict'; 

angular.module('app') 
    .controller('SampleCtrl', function ($scope, $http) { 


    }) 

    .directive('dropZone', function() { 
    return function(scope, element, attrs) { 
    $(element).dropzone({ 
     url: "/upload", 
     maxFilesize: 100, 
     maxThumbnailFilesize: 5 
    }); 
    } 
}); 

節點路由器

'use strict'; 

var express = require('express'); 
var controller = require('./import.controller'); 

var router = express.Router(); 

router.post('/', controller.import); 

module.exports = router; 

節點控制器

'use strict'; 

var express = require('express'), 
    _ = require('lodash'), 
    fs = require('fs'), 
    path = require('path'), 
    multer = require('multer'), 
    bodyParser = require('body-parser'), 
    app = express(); 

app.use(bodyParser.urlencoded({extended: true})); 

exports.import = function(req, res) { 
    console.log(req.files); // responds with 'undefined' 
    console.log(req.body); // responds with {} 
}; 

在此先感謝

+0

您正在將** multer **中間件添加到控制器中的「應用程序」。我認爲它沒有達到你期望的效果,因爲'exports.import'沒有連接到'app'。 – Jordonias 2014-12-05 20:36:41

+0

嗨,我有完全相同的問題,你設法使它工作? – Egidi 2016-02-15 19:41:09

回答

-1

你有實際使用文件上傳中間件獲得快遞解包請求的一部分。從multer文檔:

var express = require('express') 
var multer = require('multer') 

var app = express() 
app.use(multer({ dest: './uploads/'})); 

console.log(req.body) 
console.log(req.files) 
+0

感謝您的回覆。不幸的是增加了app.use(multer({dest:'./uploads/'}));仍然給我同樣的迴應。 – user1554903 2014-12-05 18:42:57

相關問題