Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在ejs视图中传递flash消息_Node.js_Ejs - Fatal编程技术网

Node.js 如何在ejs视图中传递flash消息

Node.js 如何在ejs视图中传递flash消息,node.js,ejs,Node.js,Ejs,这是我的user.js,我在这里使用了flash消息。现在,我希望这些消息显示在我的视图中。我使用ejs作为视图模板。如何在视图中传递此值?如何在视图中传递此值?我对注册、登录有不同的看法。我是否需要在每个ejs中声明,或者我们是否可以在一个特定的ejs文件中声明并包含在其他ejs页面中?此节点模块使flash消息易于集成、小巧且易于使用: 用法:(服务器) 用法:(ejs视图) 请求闪存(“成功消息”,“您已注销”);如何在我们注销时显示消息?具体的问题是抛出错误。。{{{{if erro

这是我的
user.js
,我在这里使用了flash消息。现在,我希望这些消息显示在我的视图中。我使用ejs作为视图模板。如何在视图中传递此值?如何在视图中传递此值?我对注册、登录有不同的看法。我是否需要在每个ejs中声明,或者我们是否可以在一个特定的ejs文件中声明并包含在其他ejs页面中?

此节点模块使flash消息易于集成、小巧且易于使用:

用法:(服务器)

用法:(ejs视图)



请求闪存(“成功消息”,“您已注销”);如何在我们注销时显示消息?具体的问题是抛出错误。。{{{{if error{U msg}}{{error{U msg}}{{/if}{{{if error}}{{error}}{{/if}}{{{if}{{{if response}{{response}{if msg}{{当我尝试把手时,这工作正常。但是对于ejs,应该有一些方法。请您建议如何做我正在使用passport验证用户名和密码,如果不匹配,它将抛出未知用户和密码不匹配。我们如何在我的登录中查看这一点。如果我添加此0){%>在我们的login.ejs中,它表示消息未定义,您可以帮助找到在ui中显示响应的解决方案
index.js

/**
 * Created by sysadmin on 1/25/2017.
 */

var express = require('express');
var router = express.Router();
var request = require('request');
var session = require('express-session');

var User=require('../models/user');

var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var sess;

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

function ensureAuthenticated(req, res, next){
    if(req.isAuthenticated()){
        return next();
    } else {
        //req.flash('error_msg', 'You are not logged in');
        res.redirect('/users/login');
    }
}

// Login
router.get('/login', function(req, res){
    res.render('login');
});

router.get('/admin', function(req, res){
    res.render('admin');
});




router.post('/register', function(req, res){
    var username=req.body.username;
    var password=req.body.password;
    var email=req.body.email;
    var role=req.body.role;

    req.checkBody('username','Name is required').notEmpty();
    req.checkBody('password','Password is required').notEmpty();
    req.checkBody('email','Email is required').notEmpty();
    req.checkBody('role','role is required').notEmpty();
    var errors=req.validationErrors();

    if(errors){

        res.render('register',{errors:errors})
    }
        else{
            var newUser = new User({
                username:username,
                email:email,
                password:password,
                role:role
            });

            User.createUser(newUser,function(err,user){
                if(err) throw err;
                console.log(user);
            });
            req.flash('success_msg', 'you are registered');

            res.redirect('/users/login');
        }

});

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.getUserbyUsername(username, function(err, user){
        if(err) throw err;
        if(!user){
            return done(null, false, {message: 'unknown user'});
        }
        User.comparePassword(password, user.password, function(err, isMatch){
            if(err) throw err;
            if(isMatch){
                return done(null, user);
            } else {
                return done(null, false, {message: 'Invalid password'});
            }
        });
    });

  }));

passport.serializeUser(function(user, done) {
  done(null, user.id);
});

passport.deserializeUser(function(id, done) {
  User.getUserbyId(id, function(err, user) {
    done(err, user);
  });
});

 router.post('/login',
  passport.authenticate('local', {failureRedirect:'/users/login', failureFlash: true}),
  function(req, res) {

      sess = req.session;
//In this we are assigning email to sess.email variable.
//email comes from HTML page.
  sess.email=req.user.role;

    // If this function gets called, authentication was successful.
    // `req.user` contains the authenticated user.
    console.log(req.user.role);
    if(req.user.role == "admin"){
      req.flash('isAdmin','admin');
//      req.session.role = 'admin';
        res.redirect('/');
    }
    else{
      req.flash('otherusers', 'otherusers'); 
      res.redirect('/');

    }
  });

 router.get('/logout', function(req, res){

    req.logout();
    req.flash('success_msg', 'You are logged out');
    res.redirect('/users/login');
 });


 router.get('/restful', function(req, res){
  sess = req.session;
  console.log(sess.email);

    res.render('restful');
 });

 router.post('/restful', function(req, res){
    var options = {
        uri : 'http://192.168.1.6:8080/RestTGRP/TGRP/checkAPI',
        method : 'post'
    }; 
    var responseFromClient = '';
    request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            responseFromClient = body;
        }
        else {
            responseFromClient = 'Not Found';
        }
        console.log(responseFromClient);
        //res.json(resss);
        req.flash('response_msg', responseFromClient);

        if(responseFromClient !='Not Found'){
          res.redirect('/users/restful');
        }
        else{
          res.redirect('/users/restful');
        }
    });
 });

module.exports = router;
app.get('/logout', function (req, res) {
    req.flash('logged', null);
    res.render('logout')
  });
  app.post('/logout', function (req, res) {
    req.flash('logged', 'You are logged out');
    res.redirect('/logout');
  });
<% if(messages.logged){ %>
  <%= messages.logged %>
<% }