2016-04-02 31 views
0

bu hatayı alıyorum:NodeJS ve ExpressJS Router.use() hata

 
TypeError: Router.use() requires middleware function but got a Object at Function. (C:/Users/peter/Desktop/mean/express-server/node_modules/express/lib/router/index.js:458:13) 

ben sonrası insanda benim Api test edildi ve bu hata var.

app.use ('/ api', api) yaptığımda, app.js'mdayken anladım;

app.js:

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var session = require("express-session"); 



var routes = require('./routes/index'); 
var users = require('./routes/users'); 
var api = require('./routes/jokesApi'); 

var app = express(); 


// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs'); 





app.use(favicon(path.join(__dirname, 'public/images', '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(session({secret:'secret_3162735',saveUninitialized:true,  resave: true})); 



// The error comes from here 
app.use('/api',api); 

app.use(function (req, res, next) { 
var session = req.session; 
var input = req.body; 

if(session.userName){ 
return next(); 
}else if(input.userName){ 
session.userName = input.userName; 
return res.redirect('/'); 
}else{ 
req.url='/login'; 
return next(); 
} 

}); 

app.use('/', routes); 
app.use('/users', users); 


module.exports = app; 

JokesApi.js:

var express = require('express'); 
var jokes = require('../model/jokes'); 
var session = require("express-session") 
var router = express.Router(); 

router.get('/joke/random',function(req,res,next){ 
res.end({joke: jokes.getRandomJoke()}); 

}); 

router.get('/jokes',function(req,res,next){ 
res.end({joke: jokes.allJokes}); 

}); 

router.post('/joke', function(req,res){ 
var funJoke = req.body; 
var jsonJoke = funJoke.Joke; 
jokes.addJoke(jsonJoke); 
res.end({funnyNewJoke: jsonJoke}); 
}) 

cevap

2

Sen jokesApi.js da yönlendirici ihraç değiliz.

module.exports = router; 
+0

Teşekkür ama şimdi ben bu hatayı alıyorum: –

+0

bu dosyanın sonuna ekleyin Ne hata? Kesilmiş gibi görünüyor ... – mscdex

+0

TypeError: birinci argüman, bir dize veya ServerResponse.OutgoingMessage.end dosyasında (0h351) Mean/express-server \ untitled \ nod e_modules \ express-session \ index.js: 223: 22) –