2017-04-07 19 views
0
var express = require('express'); 
var router = express.Router(), 
multer = require('multer'); 

var uploading = multer({ 
    dest: __dirname + '../public/uploads/', 
}) 

router.post('/upload', uploading, function(req, res) { 
    console.log('uploaded'); 
}) 

ここで写真アップロードのチュートリアルの後にエラーRoute.post() requires callback functionsが発生しました。おそらくそれは新しいバージョンの表現の原因でしょうか?私は上に覚えているのは、私たちがルートに真ん中を置く方法ですが、なぜここではうまくいかないのですか?Express 4ミドルウェアがミドルウェアとして使用されました

+0

チェックすると、アプリケーションで定義されているので、他のルートのこのエラー –

答えて

1

multer docsに基づいて、uploading.single()またはuploading.array()をミドルウェアとして使用する必要があるようです。この例では、multerドキュメントで使用例から得られる:

var upload = multer({ dest: 'uploads/' }) 

app.post('/profile', upload.single('avatar'), function (req, res, next) { 
    // req.file is the `avatar` file 
    // req.body will hold the text fields, if there were any 
}) 
0
var express = require('express'); 
var router = express.Router(), 
multer = require('multer'); 

var uploading = multer({ 
    dest: __dirname + '../public/uploads/', 
}) 
var type = uploading.single('file'); 

router.post('/upload', type, function(req, res) { 
    console.log('uploaded'); 
}) 
関連する問題