2017-03-31 17 views
0

これはMEAN app tutorialと一緒に新しいことですが、LinuxのCLで' node server 'を実行するとエラーが発生します(sudoをmkdirそして、)すべてのファイルを触れて、ノードサーバを実行明示的なエラー: "TypeError( 'Router.use()はミドルウェアが必要です

>sudo node server 
/home/jake/web/tasker/node_modules/express/lib/router/index.js:458 
    throw new TypeError('Router.use() requires middleware function but got a ' + gettype(fn)); 
^

TypeError: Router.use() requires middleware function but got a Object 
at Function.use   (/home/jake/web/tasker/node_modules/express/lib/router/index.js:458:13) 
at EventEmitter.<anonymous> (/home/jake/web/tasker/node_modules/express/lib/application.js:220:21) 
at Array.forEach (native) 
at EventEmitter.use (/home/jake/web/tasker/node_modules/express/lib/application.js:217:7) 
at Object.<anonymous> (/home/jake/web/tasker/server.js:23:5) 
at Module._compile (module.js:410:26) 
at Object.Module._extensions..js (module.js:417:10) 
at Module.load (module.js:344:32) 
at Function.Module._load (module.js:301:12) 
at Function.Module.runMain (module.js:442:10) 

私の主なserver.jsファイル:。。

var express = require('express'); 
var path = require('path'); 
var bodyParser = require('body-parser'); 
var index = require('./routes/index'); 
var tasks = require('./routes/tasks'); 
var port = 3000; 
var app = express(); 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine','ejs'); 
app.engine('html',require('ejs').renderFile); 
//static folder for Angular stuff 
app.use(express.static(path.join(__dirname, 'client'))); 
//body Parser MiddleWare 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: false})); 
app.use('/', index); 
app.use('/api', tasks); 
app.listen(port, function(){ 
console.log('Server has begun'); 
}); 

とpackage.json:

{ 
    "name": "tasker", 
    "version": "1.0.0", 
    "description": "", 
    "main": "server.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC", 
    "dependencies": { 
    "body-parser": "^1.17.1", 
    "ejs": "^2.5.6", 
    "express": "^4.15.2", 
    "mongojs": "^2.4.0" 
    } 
} 
+0

'。/ routes/index.js'または'。/ routes/tasks.js'(またはその両方)は、ルータ、ルートハンドラ関数、ミドルウェア関数の代わりにオブジェクトを返します。いずれにしても、_actual_server.jsの23行目をご覧ください – robertklep

答えて

0

私はチュートリアルをやり直しましたが、コマンドラインからフォルダやファイルを作成するのではなく、右クリックを使っただけでした。だから、sudoのパーミッションに関連していた可能性があります。あるいは、2回目に間違ったことを書いただけではありません。無回答のため申し訳ありません。

関連する問題