2015-10-18 75 views
1

尝试使用node.js命令node server尝试运行节点服务器时出现以下错误。运行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 

一些时间,我是能够运行这一点,但不知道为什么它是引发此类型error.My的package.json文件下面给出之前。

{ 
    "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。请帮我解决这个错误。

+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

你需要指定resavesaveUninitialized选项:

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

相关问题