运行node.js服务器端脚本时出错

尝试通过使用node.js使用命令node server来运行节点服务器时出现以下错误。

错误:

 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 

在一段时间之前,我能够运行这个,但不知道为什么它是抛出这种types的错误。我的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 。请帮我解决这个错误。

根据评论看看这个: https : //github.com/expressjs/session/issues/56

您需要指定saveUninitializedsaveUninitialized选项:

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

那么错误就是指这行代码:

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

因为admin.session./route/route.js是未定义的