2017-07-04 2 views
0

私はノードを使い慣れていないため、セッションの使用には助けが必要です。 EJSを使用してWebページをレンダリングしています。以下の私のコードを見つけてください。ノード付き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) 
以下のエラーが出ます
+0

'はconsole.log(req.session)を含める必要がありますか? –

+0

@Mukesh、私はコントローラでこれを使うことができますが、EJSの私の心配 –

+0

'req.session'がヌルであるかどうか尋ねています。それがヌルなら、それがフロントエンドで壊れているのは自明です。 –

答えて

0
res.render('register.ejs', { 
    layout:false, 
    session: req.session 
}); 

あなたは `この基本的

+0

ありがとう –

関連する問題