在EJS中使用节点

时间:2017-07-04 07:05:11

标签: javascript node.js express ejs

我是节点的新手,在使用会话时需要一些帮助。我正在使用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)

1 个答案:

答案 0 :(得分:0)

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

你需要基本上包括这个