2015-05-25 3 views
0

Я отправляю файл изображения с ajax на мой сервер Node.js. Когда я хочу посмотреть данные файла, он показывает мне «undefined».Загруженные данные изображения не определены в Node.js

app.js:

var express = require("express"); 
var app  = express(); 
var server  = require('http').createServer(app); 
var path  = require('path'); 
var bodyParser = require('body-parser'); 

app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, 'views')); 

app.use(express.static(path.join(__dirname, 'includes'))); 
app.use(bodyParser.urlencoded({ extended: false })); 

app.post('/image-upload', function(req, res){ 
    console.log(req.files); ////// undefined 
}); 

var port = process.env.PORT || 3000; 
server.listen(port); 

HTML:

<form id="uploadimage" action="" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file" id="file"/> 
    <input type="submit" value="Upload" id="submit-stock" /> 
</form> 

JavaScript:

$("#uploadimage").on('submit',(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      url: base_url + "/image-upload", 
      type: "POST", 
      data: new FormData(this), 
      contentType: false, 
      cache: false, 
      processData: false 
     }); 
    })); 

ответ

2

Модуль body-parser обрабатывает только стандартные запросы POST, запросы не MULTIPART/форм-данных в виде файлы. Для этого вам лучше использовать другое среднее изделие, такое как multer

+0

Nice. теперь данные изображения представлены, используя модуль «multer» в дополнение к модулю body-parser в моем приложении, не должно вызывать никаких проблем? – shmnsw

+0

Используйте его для маршрутов с файловой загрузкой. Используйте вспомогательное средство для тела-парсера для других форм. – Sinkingpoint

Смежные вопросы