2015-10-18 2 views
1

Я получаю следующую ошибку при попытке запустить сервер узла с помощью команды node server с использованием node.js.Ошибка при запуске скрипта на стороне сервера node.js

Error:

express-session deprecated undefined resave option; provide resave option server 
.js:18:9 
express-session deprecated undefined saveUninitialized option; provide saveUnini 
tialized option server.js:18:9 
C:\xampp\htdocs\cit_node\node_modules\express\lib\router\route.js:196 
     throw new Error(msg); 
     ^

Error: Route.get() requires callback functions but got a [object Undefined] 
    at Route.(anonymous function) [as get] (C:\xampp\htdocs\cit_node\node_module 
s\express\lib\router\route.js:196:15) 
    at EventEmitter.app.(anonymous function) [as get] (C:\xampp\htdocs\cit_node\ 
node_modules\express\lib\application.js:481:19) 
    at Object.<anonymous> (C:\xampp\htdocs\cit_node\server.js:20:5) 
    at Module._compile (module.js:435:26) 
    at Object.Module._extensions..js (module.js:442:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:311:12) 
    at Function.Module.runMain (module.js:467:10) 
    at startup (node.js:134:18) 
    at node.js:961:3 

Я объясняю мой стороне сервера код, приведенный ниже.

server.js:

var port=8888; 
var express=require('express'); 
var http=require('http'); 
var morgan   = require('morgan'); 
var bodyParser  = require('body-parser'); 
var methodOverride = require('method-override'); 
var expressSession = require('express-session'); 
var cookieParser = require('cookie-parser'); // the session is stored in a cookie, so we use this to parse it 
var app   = express(); 
var server=http.createServer(app); 
var admin=require('./route/route.js'); 
app.use(express.static(__dirname + '/public'));  // set the static files location /public/img will be /img for users 
app.use(morgan('dev'));      // log every request to the console 
app.use(bodyParser.urlencoded({ extended: false })) // parse application/x-www-form-urlencoded 
app.use(bodyParser.json()) // parse application/json 
app.use(methodOverride());     // simulate DELETE and PUT 
app.use(cookieParser()); 
app.use(expressSession({secret:'abcx'})); 
app.post('/login',admin.adminlogin); 
app.get('/session',admin.session); 
//app.post('/logout',admin.logout); 
app.get('/',function(req,res){ 
    res.sendfile('view/index.html'); 
}); 
server.listen(port); 
console.log('Magic happens on port'+port);   // shoutout to the user 

До некоторого времени я был в состоянии управлять этим, но не знаю, почему он бросает этот тип файла package.json error.My приводится ниже.

{ 
    "name": "Gofasto", 
    "main": "server.js", 
    "dependencies": { 
    "express": "4.13.3", 
    "morgan": "1.6.1", 
    "body-parser": "1.14.1", 
    "method-override": "2.3.5", 
    "socket.io":"1.3.7", 
    "mongojs":"1.4.1", 
    "cookie-parser": "1.4.0", 
    "express-session": "1.11.3" 
    } 
} 

route.js:

var mongo = require('mongojs'); 
var database='go_fasto'; 
var collections=['user']; 
var db=mongo("127.0.0.1:27017/"+database, collections); 
exports.adminlogin=function(req,res){ 
    var username=req.body.username; 
    var password=req.body.password; 
    db.user.findOne({ 
     user_name:username, 
     raw_password:password 
    },function(err,docs){ 
     if(!err){ 
      if(docs){ 
       console.log('docs',docs); 
       ses=req.session; 
       ses.username=docs.user_name; 
       ses.user_type=docs.user_type; 
       ses.email_id=docs.email; 
       ses.dept_id=docs.dept_id; 
       res.send(docs); 
      } 
     } 
     if(err){ 
      res.send("could not login"); 
     } 
    }); 
} 
/*exports.logout=function(req,res){ 
    req.session.destroy(function(err){ 
if(err){ 
console.log(err); 
} 
else 
{ 
res.redirect('/'); 
} 
}); 
} 
*/ 

Я использую версию узла 4.2.1 .Please помочь мне решить эту ошибку.

+0

см. Https://github.com/expressjs/session/issues/56 и http://stackoverflow.com/questions/24477035/express-4-0-express-session-with-odd-warning-message –

ответ

4

Согласно комментарию взгляд на это: https://github.com/expressjs/session/issues/56

Вы должны указать resave и в saveUninitialized варианты:

app.use(expressSession({ 
    secret: 'abcx', 
    resave: true, 
    saveUninitialized: true 
})); 

Тогда ошибка ссылается на эту строку кода:

app.get('/session',admin.session); 

Поскольку admin.session не указывается в ./route/route.js

+0

@ Michelem: Хорошо, я добавил, и предупреждение исчезло, но все же ошибка там, которая объяснила в моем посте. – subhra

+0

Покажите нам './Route/route.js' код –

+0

Я отправил код. Пожалуйста, проверьте. – subhra

Смежные вопросы