2016-08-29 7 views
-1

アップロード/ダウンロードアプリケーションを作成していますが、なぜ私のapp.jsファイルにこの問題があるのか​​分かりません。私はインターネット上の他のすべての回答を検索しましたが、それでも問題は解決しませんでした。あなたの助けのためのExpress Error:TypeError:Router.use()にはミドルウェア機能が必要ですが、オブジェクトがあります

var express = require('express'); 
    var path = require('path'); // add path to set and get 
    var fs = require('fs'); // add filesystem 
    var connect = require('connect'); 
    var favicon = require('serve-favicon'); 
    var logger = require('morgan'); 
    var cookieParser = require('cookie-parser'); 
    var bodyParser = require('body-parser'); 
    var connect = require('connect'); 
    var http = require('http'); 
    var routes = require('./routes/index'); 
    var users = require('./routes/users'); 
    //var upload = require('./routes/upload'); 
    var app = express(); 
    // view engine setup 
    app.set('views', path.join(__dirname, 'views')); 
    app.set('view engine', 'jade'); 
    // 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(cookieParser()); 
    app.use(express.static(path.join(__dirname, 'public'))); 
    app.use(express.static('public')); 
    app.use(express.static('files')); 
    app.use('/', routes); 
    app.use('/users', users); 
    //app.use('/upload',upload); 
    // 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 handlers 
    // development error handler 
    // will print stacktrace 
    if (app.get('env') === 'development') { 
    app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message: err.message, 
    error: err 
    }); 
    }); 
    } 
    // production error handler 
    // no stacktraces leaked to user 
    app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message: err.message, 
    error: {} 
    }); 
    }); 
    module.exports = app; 

ありがとう: ここに以下のコードです。あなたのすべてのファイルで

+0

エラーログを貼り付けることはできますか? –

+0

新しいTypeErrorを投げる( 'Router.use()にはミドルウェア機能が必要ですが、' + gettype(fn))があります。 ^ TypeError:Router.use()はミドルウェア機能が必要ですが、オブジェクトを持っています – BlackWolf

答えて

0

チェック あなたはすべての回でそれに

module.exports = router;

+0

これらはすべてページの一番下にエクスポートされています – BlackWolf

0

Router.use()exportを逃していないことを確認してください引数としてミドルウェアの機能を必要とします。あなたのサーバからいくつかのファイルをダウンロードするあなたのルートを仮定すると、これに似ているはずです。

var Router = express.Router(); 


function downloadFiles(request,response) { 
    // some code to dowload files 
} 

// The above function which takes request and response 
// should be passed to Router.use() 

Router.use(downloadFiles); 

あなたはそれはあなたがRouter.use()に渡されたものを意味そのエラーがdownloadFilesのようなミドルウェアの機能ではありません

+0

申し訳ありませんが、動作していません。 – BlackWolf

関連する問題