Javascript 在带有节点的EJS中使用会话

Javascript 在带有节点的EJS中使用会话,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我是node新手,在使用会话时需要一些帮助。我正在使用EJS呈现我的网页。请在下面找到我的代码 app.js var express = require('express'); var registerController = require('./controllers/registerController'); var app =express(); var bodyParser = require('body-parser'); var sessions=require('express-

我是node新手,在使用会话时需要一些帮助。我正在使用EJS呈现我的网页。请在下面找到我的代码

app.js

var express = require('express');
var registerController = require('./controllers/registerController');
var app =express();
var bodyParser = require('body-parser');
var sessions=require('express-session');

app.set('view engine', 'ejs');

app.use(express.static('./public'));

app.use(sessions({
    secret:'asasds*(&^*(',
    resave:false,
    saveUninitialized:true
}));

app.use(function(req, res, next) {
  res.locals.user = req.session.user;
  next();
});

//controllers
registerController(app);

app.listen(3000);
console.log( " you are listening to port 3000");
registercontroller.js

var bodyParser = require('body-parser');
var fs = require('fs');

var urlencodedParser = bodyParser.urlencoded({ extended: false });

module.exports=function(app){

    app.get('/register',function(req,res){
            res.render('register');
    });

    app.post('/register',urlencodedParser,function(req,res){
        console.log(" inside controller :::" );

        var userObj = {
            "username":req.body.username,
            "password":req.body.password,
            "email":req.body.email,
            "fNmame":req.body.fNmame,
            "lNmame":req.body.lNmame
        }
        console.log(" userObj :::" + JSON.stringify(userObj));

        fs.writeFile("/assets/data.txt", JSON.stringify(userObj), function(err) {
            if(err) {
                return console.log(err);
            }

            console.log("The file was saved!");
        }); 
        var val = req.session.user;

     res.render('index2',{session: req.session});
    });
};
index2.ejs

 <%= JSON.stringify(session) %>

使用以上所有方法,我得到以下错误

 <%= JSON.stringify(session) %>

session is not defined
    at eval (eval at compile (c:\learning\socialnetworking\node_modules\ejs\lib\ejs.js:524:12), <anonymous>:24:41)
    at returnedFn (c:\learning\socialnetworking\node_modules\ejs\lib\ejs.js:555:17)
    at tryHandleCache (c:\learning\socialnetworking\node_modules\ejs\lib\ejs.js:203:34)
    at View.exports.renderFile [as engine] (c:\learning\socialnetworking\node_modules\ejs\lib\ejs.js:412:10)
    at View.render (c:\learning\socialnetworking\node_modules\express\lib\view.js:128:8)
    at tryRender (c:\learning\socialnetworking\node_modules\express\lib\application.js:640:10)
    at EventEmitter.render (c:\learning\socialnetworking\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (c:\learning\socialnetworking\node_modules\express\lib\response.js:971:7)
    at c:\learning\socialnetworking\controllers\registerController.js:26:13
    at Layer.handle [as handle_request] (c:\learning\socialnetworking\node_modules\express\lib\router\layer.js:95:5)
    at next (c:\learning\socialnetworking\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (c:\learning\socialnetworking\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (c:\learning\socialnetworking\node_modules\express\lib\router\layer.js:95:5)
    at c:\learning\socialnetworking\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (c:\learning\socialnetworking\node_modules\express\lib\router\index.js:335:12)
    at next (c:\learning\socialnetworking\node_modules\express\lib\router\index.js:275:10)

未定义会话
评估时(编译时评估)(c:\learning\socialnetworking\node\u modules\ejs\lib\ejs.js:524:12),:24:41)
返回时fn(c:\learning\socialnetworking\node\u modules\ejs\lib\ejs.js:555:17)
在tryHandleCache(c:\learning\socialnetworking\node\u modules\ejs\lib\ejs.js:203:34)
在View.exports.renderFile[作为引擎](c:\learning\socialnetworking\node\u modules\ejs\lib\ejs.js:412:10)
在View.render(c:\learning\socialnetworking\node\u modules\express\lib\View.js:128:8)
在tryRender(c:\learning\socialnetworking\node\u modules\express\lib\application.js:640:10)
在EventEmitter.render(c:\learning\socialnetworking\node\u modules\express\lib\application.js:592:3)
在ServerResponse.render(c:\learning\socialnetworking\node\u modules\express\lib\response.js:971:7)
在c:\learning\socialnetworking\controllers\registerController.js:26:13
在Layer.handle[作为handle\u请求](c:\learning\socialnetworking\node\u modules\express\lib\router\Layer.js:95:5)
下一步(c:\learning\socialnetworking\node\u modules\express\lib\router\route.js:137:13)
在Route.dispatch(c:\learning\socialnetworking\node\u modules\express\lib\router\Route.js:112:3)
在Layer.handle[作为handle\u请求](c:\learning\socialnetworking\node\u modules\express\lib\router\Layer.js:95:5)
在c:\learning\socialnetworking\node\u modules\express\lib\router\index.js:281:22
在Function.process_参数(c:\learning\socialnetworking\node_modules\express\lib\router\index.js:335:12)
下一步(c:\learning\socialnetworking\node\u modules\express\lib\router\index.js:275:10)

您基本上需要包括这个

console.log(req.session)
?@Mukesh,我可以在控制器中使用它,但我在EJSI中关心的是,
req.session
是否为空。如果它为空,那么它在前端中断的原因就无关紧要了。@Mukesh::req.session::[object object]Try
res.render('register.ejs', {
    layout:false,
    session: req.session
});