标签: connect-flash

如何使用express和connect-flash显示没有页面刷新的flash消息?

快速连接闪存仅在刷新后显示. 代码被剥离以便于阅读.

"express": "~4.2.0",
"connect-flash": "~0.1.1",
Run Code Online (Sandbox Code Playgroud)

这是我的 app.js

var express = require('express'),
    favicon = require('serve-favicon'),
    flash = require('connect-flash');
var app = express();
app.use(cookieParser('---'));
app.use(session({
  secret: '---',
  saveUninitialized: true,
  resave: true}));
app.use(flash());

app.use(function(req, res, next) {
  res.locals.messages = req.flash();
  next();
});
Run Code Online (Sandbox Code Playgroud)

在我的路线我试过像

req.flash('success', {msg: 'Sign Up Success'});
res.redirect('/me/dashboard');
Run Code Online (Sandbox Code Playgroud)

我的错误显示msg.jade模板是

for msg in messages
      div #{msg.msg}
Run Code Online (Sandbox Code Playgroud)

我只是在刷新/ redirtect之后收到消息.请让我知道我做错了什么.

我也看到了这一点,但我觉得它过时了

node.js express connect-flash

14
推荐指数
1
解决办法
2万
查看次数

Express:req.flash()需要会话

我在使用connect-flash工作时遇到了一些问题,我得到的错误信息是:

'错误:req.flash()需要会话'

我已经看到这可能是因为应用程序的排序,但我不确定这是否是这种情况.

App.js:

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var flash = require('connect-flash');
var passport = require('passport');
var app = express();

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use(session({secret: '{secret}', name: 'session_id', saveUninitialized: true, resave: true}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
Run Code Online (Sandbox Code Playgroud)

路线等如下

闪存生成代码:

passport.authenticate('local', { failureRedirect: '/login', successRedirect: '/', failureFlash: true})
Run Code Online (Sandbox Code Playgroud)

node.js express passport-local passport.js connect-flash

8
推荐指数
2
解决办法
1万
查看次数

TypeError:req.flash不是函数

当我尝试从页面登录时,我收到了错误return done(null, false, req.flash('loginMessage', 'User does not exist')); TypeError: req.flash is not a function.

以下是我的server.js和passport.js配置:

server.js:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var session = require('express-session');
var ejs = require('ejs');
var mongoose = require('mongoose');
var passport = require('passport');
var flash = require('connect-flash');


mongoose.connect('mongodb://localhost:mydb');

require('./config/passport')(passport);
app.use(express.static('public'));
app.set('view engine', 'ejs');
app.set('views', __dirname+'/public/views');
app.use(bodyParser.urlencoded({'extended':'true'}));
app.use(bodyParser.json());
app.use(methodOverride());
app.use(session({secret:'learningpassport',
            resave: true,
            saveUnitialized: true}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());

require('./app/routes')(app,passport);


app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

配置/ passport.js:

var LocalStrategy = …
Run Code Online (Sandbox Code Playgroud)

node.js passport.js connect-flash

8
推荐指数
2
解决办法
8413
查看次数

闪光灯,连接闪光灯和快速闪光灯之间的区别

关于flash,connect-flash和express-flash之间究竟有什么区别我还是有点困惑.

安装:

  • npm install flash

  • 快递:npm install express-flash

  • 连接闪存:npm install connect-flash

用法:

闪光:

app.use(session()); // session middleware 
app.use(require('flash')());

app.use(function (req, res) {
  // flash a message 
  req.flash('info', 'hello!');
  next();
})
Run Code Online (Sandbox Code Playgroud)

连接闪存

var flash = require('connect-flash');
var app = express();

app.configure(function() {
  app.use(express.cookieParser('keyboard cat'));
  app.use(express.session({ cookie: { maxAge: 60000 }}));
  app.use(flash());
});
Run Code Online (Sandbox Code Playgroud)

express-flash它甚至要求使用的设置方式与connect-flash相同:

var flash = require('express-flash'),
    express = require('express'),
    app = express();

  app.use(express.cookieParser('keyboard cat'));
  app.use(express.session({ cookie: { maxAge: 60000 }}));
  app.use(flash()); …
Run Code Online (Sandbox Code Playgroud)

node.js express connect-flash

8
推荐指数
1
解决办法
5291
查看次数

如何从与angularjs的角度相等的"req.something"

我正在学习如何使用nodejs和passport设置身份验证的教程.(http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local)

本教程让我使用ejs渲染模板并传入flash数据.

而不是这个,我想使用angularjs.我遇到问题的部分是获取闪存数据.我知道如何使用模板和发送变量,但角度中的内容取代了下面代码中的"req.flash('signupMessage')"?

这是教程显示的代码:

app.get('/signup', function(req, res) {
  // render the page and pass in any flash data if it exists
  res.render('signup.ejs', { message: req.flash('signupMessage') });    
});
Run Code Online (Sandbox Code Playgroud)

这是我设置路线的代码

// public/js/appRoutes.js
angular.module('appRoutes', []).config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

$routeProvider

    // show signup form
    .when('/signup', {
        templateUrl: 'views/signup.html',
        controller: 'SignupController'  
    });
$locationProvider.html5Mode(true);

}]);
Run Code Online (Sandbox Code Playgroud)

这是控制器:

 // public/js/controllers/SetupCtrl.js
 angular.module('SignupCtrl', []).controller('SignupController', function($scope) {
     $scope.tagline = 'TEST';
 });
Run Code Online (Sandbox Code Playgroud)

node.js angularjs passport.js connect-flash

5
推荐指数
1
解决办法
472
查看次数

捕获/处理MySQL重复输入错误-使用NodeJS,PassportJS,Express,connect-flash,Heroku

示例开始,我正在为节点应用程序进行用户注册,但是使用MySQL数据库而不是MongoDB。用户中的多列表具有唯一性约束。

这是创建表的SQL代码:

CREATE TABLE `' + dbconfig.database + '`.`' + dbconfig.users_table + '` ( \
    `id`                  INT UNSIGNED NOT NULL  AUTO_INCREMENT, \
    `username`            VARCHAR(60)  NULL, \
    `password`            CHAR(60)     NULL, \
    `facebook_id`         VARCHAR(60)  NULL, \
    `facebook_token`      CHAR(223)    NULL, \
    `facebook_name`       VARCHAR(100) NULL, \
    `facebook_email`      VARCHAR(100) NULL, \
    `google_id`           VARCHAR(60)  NULL, \
    `google_token`        CHAR(67)     NULL, \
    `google_name`         VARCHAR(100) NULL, \
    `google_email`        VARCHAR(100) NULL, \
    PRIMARY KEY (`id`), \
    UNIQUE INDEX `id_UNIQUE` (`id` ASC), \
    UNIQUE INDEX `username_UNIQUE` …
Run Code Online (Sandbox Code Playgroud)

mysql heroku node.js passport.js connect-flash

5
推荐指数
1
解决办法
5059
查看次数

用HTML连接flash消息?

我想在connect-flash消息的文本中包含一个链接:

JS

req.flash("registerMessage", "Sorry, the User ID you chose is already in use. Please choose another. If you have already registered and need assistance logging in, <a href=\"http://www.example.com/support/\">contact support</a>");
Run Code Online (Sandbox Code Playgroud)

EJS

<% if (message.length > 0) { %>
  <div class="alert alert-danger"><%= message %></div>
<% } %>
Run Code Online (Sandbox Code Playgroud)

结果

<div class="alert alert-danger">Sorry, the User ID you chose is already in use. Please choose another. If you have already registered and need assistance logging in, &lt;a href=&quot;http://www.example.com/support/&quot;&gt;contact support&lt;/a&gt;.</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法阻止Flash转义HTML字符,以便我可以在我的消息中显示链接?

ejs node.js express connect-flash

3
推荐指数
1
解决办法
2834
查看次数

护照js中的Flash消息

我有Flash消息问题。我的页面上没有错误消息。请告诉我错误在哪里。

PS。对不起,我的英语; D

app.js

要求:快递,护照,哈巴狗,快递会话,cookie解析器,connect-flash,身体解析器...

var router = require('./router.js')(passport);
var initPassport = require('./passport-init.js');

var app = express();

app.set('views', __dirname + '/views');
app.set('view engine', 'pug');

app.use(cookieParser('secret'));
app.use(session({ cookie: { maxAge: 60000 }, secret: 'secret' }));
app.use(flash());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(passport.initialize());
app.use('/', router);

initPassport(passport);
Run Code Online (Sandbox Code Playgroud)

router.js

var express = require('express');
var router = express.Router();

module.exports = function(passport) {

    router.get('/', function(req, res) {
       res.render('index', {
           title: 'index page'
       });
    });

    router.post('/auth',        
       passport.authenticate('local', {         
           successRedirect: '/',
           failureRedirect: '/',
           failureFlash: true
       })
    );

   return (router); …
Run Code Online (Sandbox Code Playgroud)

express passport.js connect-flash pug

3
推荐指数
1
解决办法
2434
查看次数

处理 Node.js flash 消息的最佳方法是什么?

我是 Node.js 的初学者,我非常喜欢它。我想知道如何才能以最好、最简单的方式处理 Flash 消息。

我在我的网站中使用了 connect-flash 包。它有更好的吗?

我总是将 Flash 消息放入渲染函数中,如下所示:

res.render('auth/login', {
        title: 'Log in',
        success: req.flash('success'),
        error: req.flash('error')
    });
Run Code Online (Sandbox Code Playgroud)

它有办法处理全球事务吗?就像在 res.locals.messages 变量或类似的东西中?

我使用 JADE html 模板,所以我像 #{success} 一样打印它们。我如何以这种方式访问​​全局变量来打印我的闪存消息?

非常感谢您的帮助和建议!

node.js express flash-message connect-flash pug

2
推荐指数
1
解决办法
1070
查看次数

节点 - connect-flash无法重定向

我遇到了一些关于连接闪存的奇怪问题,我在其他项目中以完全相同的方式使用它并且它工作正常,这就是我所拥有的:

一些路线

if (err) {
    req.flash('message', [{
      class: 'alert-danger',
      message: 'TEST'
    }]);

    res.redirect('/error');
}
Run Code Online (Sandbox Code Playgroud)

错误路线

router.get('/error', function (req, res, next) {
  console.log('---in error route')
  console.log(req.flash('message'));

 res.render('error', {
    message: req.flash('message'),
    layout: layout
  });
})
Run Code Online (Sandbox Code Playgroud)

的console.log

---in error route
[ { class: 'alert-danger', message: 'TEST' } ]
Run Code Online (Sandbox Code Playgroud)

error.hbs

{{#if message}} 
    {{#each message}}
        <div class="{{this.class}}">{{this.message}}</div>
    {{/each}} 
{{/if}}
Run Code Online (Sandbox Code Playgroud)

显然它在那里,但没有打印输出,如果我将第一条路线中的确切事物复制到错误,它会显示(这对我不起作用,但仅用于测试以确保hbs模板逻辑有效):

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

  req.flash('message', [{
    class: 'alert-danger',
    message: 'TEST'
  }]);
  res.render('error', {
    message: req.flash('message'),
    layout: layout
  });
})
Run Code Online (Sandbox Code Playgroud)

它可能很简单,但我不知道它是什么.

node.js express connect-flash

0
推荐指数
1
解决办法
1572
查看次数