프로그래밍/Node.js

Node.js - req.files이 동작을 안할때 - express

가카리 2015. 1. 6. 21:03
반응형

질문 내용

Hey so I am trying to accept an uploaded file but everytime I call req.files it is considered undefined... Not sure what I am doing wrong...

파일 업로드를 하고싶은데 req.files 호출할때마다 undefined 됬다는 에러가 나와

This is my app.js file:

여기 app.js 파일이야

var express = require('express')

    , user = require('./routes/user')

    , http = require('http')

    , path = require('path')

    , mongoose = require('mongoose')

    , mongoConnect = mongoose.connect('mongodb://localhost/clothing')

    , app = express();

 

// all environments

app.set('port', process.env.PORT || 3000);

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

app.set('view engine', 'jade');

app.use(express.favicon());

app.use(express.logger('dev'));

app.use(express.bodyParser({uploadDir: './public/img'}));

app.use(express.multipart());

app.use(express.methodOverride());

app.use(app.router);

app.use(express.static(path.join(__dirname, 'public')));

 

app.get('/user', user.user);

app.post('/user', user.userPost);

Then in my routes file I am just calling

req.files

and on the client side I am calling:

form(action="/user", method="post")

        label name:

            input(type="text", name="name")

        label pic:

            input(type="file", name="picture", enctype="multipart/form-data")

        input(type="submit", value="Add New Clothes Item")

 

답변 내용

너가 원래 썼던 코드는 아래꺼인데 좀 바껴야 할 점이 있어

app.use(express.bodyParser({uploadDir: './public/img'}));
app.use(express.multipart());

This basically translates to:

이제 아랫처럼 바꼈어

app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart({uploadDir: './public/img'}));
app.use(express.multipart());

 

Docs:

http://expressjs.com/api.html#bodyParser

 

 

출처 : http://stackoverflow.com/questions/19959708/req-files-not-working-node-js-express

반응형