2017-04-05 78 views
-1

我可以用Expressjs上傳一些文件到bodyParser.json()中間件嗎?我使用Expressjs 4.14和我的app.js snipet是這樣上傳文件在Expressjs bodyParser

require('dotenv').config(); 
require('./app/models/db'); 

var express   = require('express'); 
var session   = require('express-session'); 

var path    = require('path'); 
var favicon   = require('serve-favicon'); 
var logger   = require('morgan'); 
var cookieParser  = require('cookie-parser'); 
var bodyParser  = require('body-parser'); 

var app    = express(); 


var socket_io = require("socket.io"); 
var io   = socket_io(); 
app.io   = io; 

var mainRouteConfig = require('./app/routes/routes')(io); 
// var notifRouteConfig = require('./app/routes/notif')(io); 

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


// uncomment after placing your favicon in /public 
// app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 

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


app.use(express.static(path.join(__dirname, 'public'))); 
app.use(cookieParser()); 
app.use(session({ secret: 'super-secret-code'})); 



app.use('/', mainRouteConfig); 

// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 


// error handler 
app.use(function(err, req, res, next) { 
    // set locals, only providing error in development 
    res.locals.message = err.message; 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 

    // render the error page 
    res.status(err.status || 500); 
    res.render('error'); 
}); 



// io.on("connection", function(socket){ 
//  console.log("A user connected"); 
// }); 


module.exports = app; 

我認爲這個問題是在app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false }));想使用的multipart/form-data的

上傳一些文件
+1

[_ 「這並不處理多機構」 _(https://github.com/expressjs/body-parser#body -parser)。 – robertklep

+0

好吧,我的壞。試試另一種方式 –

回答

1

BodyParser主要用於urlencoded的時ENCTYPE。

對於multipart我使用Formidable和表達強大。

npm install formidable express-formidable --save 

看看文檔here

好運

+0

謝謝,我會試試這個 –