2016-03-08 82 views
1

我想让Toastr库在我的ExpressJS应用程序中工作!我用脚手架自耕农 '标准' 快递发电机,我需要的lib express-toastr应用...express.js:显示toastr消息

,并做了以下内容:

app.js

const cookieParser = require('cookie-parser'); 
const session = require('express-session'); 
const flash = require('connect-flash'); 
const toastr = require('express-toastr'); 

app.use(cookieParser()); 
app.use(session({secret: 'xxx', saveUninitialized: true, resave: true})); 
app.use(flash()); 
app.use(toastr()); 

index.js

const express = require('express'); 
const router = express.Router(); 
const httpntlm = require('httpntlm'); 

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

    // parse inputs 
    let user = req.body.user || ""; 
    let password = req.body.password || ""; 

    // save in session 
    req.session.user = {user: user, password: password}; 

    // appropriate response to login attempt 
    if (!req.session.user) { 
     res.status(401).send(); 
    } 
    else { 
     req.toastr.success('Successfully logged in.', "You're in!"); 

     res.render('groups', { 
      req: req 
     }); 
    } 
}); 

module.exports = router; 

In index.jade

#{req.toastr.render()} 

我加载在我<head>节这些文件:

link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.2/css/toastr.min.css') 
script(src='/components/jquery/dist/jquery.min.js') 
script(src='//cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.2/js/toastr.min.js') 

什么也不显示。我错过了什么?

- UPDATE! -

这是我完整的app.js文件。我现在尝试使用快速闪光灯并制作显示闪光灯消息的专用路线。还是行不通。请帮忙!

'use strict'; 

const express = require('express'); 
const path = require('path'); 
const favicon = require('serve-favicon'); 
const logger = require('morgan'); 
const cookieParser = require('cookie-parser'); 
const bodyParser = require('body-parser'); 

const expressSanitizer = require('express-sanitizer'); 

const login = require('./routes/login'); 
const apply = require('./routes/apply'); 
const admin = require('./routes/admin'); 

var session = require('express-session'); 
var flash = require('express-flash'); 


var app = express(); 


// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
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({ 
    cookie: { maxAge: 60000 }, 
    store: new session.MemoryStore, 
    saveUninitialized: true, 
    resave: 'true', 
    secret: 'secret' 
})); 
app.use(flash()); 

// Route that creates a flash message using the express-flash module 
app.all('/express-flash', function(req, res) { 
    req.flash('success', 'This is a flash message using the express-flash module.'); 
    res.redirect(301, '/'); 
}); 







// sanitize inputs 
app.use(expressSanitizer()); 

app.use('/', apply); 
app.use('/apply', apply); 
app.use('/login', login); 
app.use('/admin', admin); 


// catch 404 and forward to error handler 
app.use(function (req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handlers 

// development error handler 
// will print stacktrace 
if (app.get('env') === 'development') { 
    app.use(function (err, req, res, next) { 
     res.status(err.status || 500); 
     res.render('error', { 
      message: err.message, 
      error: err 
     }); 
    }); 
} 

// production error handler 
// no stacktraces leaked to user 
app.use(function (err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: {} 
    }); 
}); 

module.exports = app; 

回答

0

所以我不熟悉你的index.jade文件(!=)中的语法。它有什么作用?如果您将索引中的该行更改为#{req.toastr.render()},它应该可以工作。

+0

我试过你的建议,但仍然无法正常工作。你能让它工作吗? 语法!=用于转义代码。我误解了在哪里使用它! http://jade-lang.com/reference/code/ – olefrank