2017-05-17 3 views
0

Ich bin ein Neuling, um js auszudrücken. Ich folge die Anleitungen von tutorials pointExpress-Fehler: neue TypeError ('Router.use() erfordert Middleware-Funktion, aber ein' + gettype (Fn));

habe ich versucht, die Beispiele dort gegeben Umsetzung, aber ich erhalte die folgenden Fehler

/home/krishna/.nvm/versions/node/v5.0.0/bin/node /home/krishna/self/projects/projects/Node/nativebag/bin/www 
/home/krishna/self/projects/projects/Node/nativebag/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/krishna/self/projects/projects/Node/nativebag/node_modules/express/lib/router/index.js:458:13) 
    at EventEmitter.<anonymous> (/home/krishna/self/projects/projects/Node/nativebag/node_modules/express/lib/application.js:220:21) 
    at Array.forEach (native) 
    at EventEmitter.use (/home/krishna/self/projects/projects/Node/nativebag/node_modules/express/lib/application.js:217:7) 
    at Object.<anonymous> 

(/home/krishna/self/projects/projects/Node/nativebag/app.js:25:5) 
    at Module._compile (module.js:425:26) 
    at Object.Module._extensions..js (module.js:432:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:311:12) 
    at Module.require (module.js:366:17) 

Process finished with exit code 1 

ich online nach Lösungen gesucht habe, aber war nicht in der Lage, es zu lösen.

Hier ist mein Code:

Index.js

var express = require('express'); 
var app = express(); 

var things = require('./things.js'); 

app.use('/things', things); 
app.listen(3000); 

things.js

var express = require('express'); 
var router = express.Router(); 

/* GET home page. */ 
router.get('/', function(req, res, next) { 
    res.render('index', { title: 'Express' }); 
}); 

// POST hello world 
router.post('/', function (req, res, next) { 
    res.send("Hello World"); 
}); 

module.exports = router; 

Könnte jemand Punkt der Fehler?

danke.

+3

Das ist nicht Ihre gesamte Code ist, weil a) der Code, den Sie zeigt nicht gebrochen ist und b) der Fehler geschieht auf 'app.js' Linie 25, die Sie veröffentlichen nicht. – robertklep

+0

Dies ist der einzige Code, den ich geschrieben habe. der rest davon war vorinstalliert und so nahm ich an, dass etwas mit meinem code falsch sein musste @robertklep – krishna

+0

Ist 'index.js' eigentlich' routes/index.js'? – robertklep

Antwort

0

Es war wesentlich und Problem der Änderung in der Version von Express. Unten ist der Code, den ich geändert habe und jetzt funktioniert es gut.

var express = require('express'); 
var router = express.Router(); 

var things = require('./things.js'); 

router.use('/things', things); 

module.exports = router; 
// app.listen(3000); 
Verwandte Themen