Javascript 在带有节点的EJS中使用会话
我是node新手,在使用会话时需要一些帮助。我正在使用EJS呈现我的网页。请在下面找到我的代码 app.jsJavascript 在带有节点的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-
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
});