node.JS Express护照路由

F4Ke

我创建了一个简单的项目,共有3页:“主页”,“联系方式”和“关于”。

一切正常,然后我想向mongo添加用户注册。

所以我按照本教程

但是,当我添加一些新路线时,无法再访问任何页面。

这是我的index.js,我可以访问我的三页

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

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



/* GET contact page. */
router.get('/contact', function(req, res) {
    res.render('contact');
});

/* POST contact page (submit). */
router.post('/contact', function(req, res) {
    res.render('contact', { name: req.param('name') });
});

/* GET home page. */
router.get('/home', function(req, res) {
    res.render('home');
});

/* POST home page (submit). */
router.post('/home', function(req, res) {
    res.render('home', { comm: req.param('comm') });
});


/* GET about page. */
router.get('/about', function(req, res) {
    res.render('about');
});


module.exports = router;

一切简单而有效。现在,就像这样:

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

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



/* GET contact page. */
router.get('/contact', function(req, res) {
    res.render('contact');
});

/* POST contact page (submit). */
router.post('/contact', function(req, res) {
    res.render('contact', { name: req.param('name') });
});

/* GET home page. */
router.get('/home', function(req, res) {
    res.render('home');
});

/* POST home page (submit). */
router.post('/home', function(req, res) {
    res.render('home', { comm: req.param('comm') });
});


/* GET about page. */
router.get('/about', function(req, res) {
    res.render('about');
});


module.exports = router;

module.exports = function(passport){

  // /* GET login page. */
  // router.get('/', function(req, res) {
  //   // Display the Login page with any flash message, if any
  //   res.render('index', { message: req.flash('message') });
  // });

  /* Handle Login POST */
  router.post('/login', passport.authenticate('login', {
    successRedirect: '/home',
    failureRedirect: '/',
    failureFlash : true
  }));

  /* GET Registration Page */
  router.get('/signup', function(req, res){
    res.render('register',{message: req.flash('message')});
  });

  /* Handle Registration POST */
  router.post('/signup', passport.authenticate('signup', {
    successRedirect: '/home',
    failureRedirect: '/signup',
    failureFlash : true
  }));

  return router;
}

现在,没有显示路线。

有任何想法吗 ?

谢谢 !

编辑 : app.js

var express      = require('express');
var path         = require('path');
var favicon      = require('static-favicon');
var logger       = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser   = require('body-parser');
var swig         = require('swig');

var dbConfig = require('./db.js');
var mongoose = require('mongoose');
mongoose.connect(dbConfig.url);

var routes = require('./routes/index');

var app = express();

// Configuring Passport
var passport = require('passport');
var expressSession = require('express-session');
app.use(expressSession({secret: 'mySecretKey'}));
app.use(passport.initialize());
app.use(passport.session());


// view engine setup
app.engine('html', swig.renderFile);

app.set('view engine', 'html');
app.set('views', path.join(__dirname, 'views'));

// view cache
app.set('view cache', false);
swig.setDefaults({ cache: false });

app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);

/// catch 404 and forwarding 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;
伊库门

您的模块需要一个passport对象

module.exports = function(passport){

但您没有在app.js中使用护照对象调用它

var routes = require('./routes/index');

同样,您需要在调用路由模块之前定义护照。因此,最后您需要修改app.js使其看起来像这样:

var passport = require('passport');
var expressSession = require('express-session');
app.use(expressSession({secret: 'mySecretKey'}));
app.use(passport.initialize());
app.use(passport.session());

...
var routes = require('./routes/index')(passport);
...
app.use('/', routes);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.JS Express护照路由

来自分类Dev

Node.js,Express,护照可以移动

来自分类Dev

Node.js + Express:指定路由

来自分类Dev

Node.js 护照注册

来自分类Dev

googleapis oauth2.0 +用户注册护照-Node.js Express应用程序

来自分类Dev

Node.JS POST请求通过护照保护的Express应用程序

来自分类Dev

具有参数的Node.js和Express路由

来自分类Dev

如何使用Node.js Express模块化路由

来自分类Dev

Node.js,Express无法路由参数化的GET请求

来自分类Dev

Node.js Express删除路由不起作用

来自分类Dev

Node.js / Express路由无法正常工作

来自分类Dev

使用Express和Passport JS重定向Node中的路由

来自分类Dev

Node.js Express路由器无法正常工作

来自分类Dev

关于node js express框架中的路由定义

来自分类Dev

使用护照登录node.js

来自分类Dev

Node.JS Express路由仅针对特定路由产生404

来自分类Dev

Node JS:Express入门

来自分类Dev

使用express node.js的路由,但express.Router变得未定义

来自分类Dev

AngularJS HTML模板在Node.js / Express.js中路由失败

来自分类Dev

Node.js路由错误

来自分类Dev

Node.js Express路由命名和排序:如何确定优先级?

来自分类Dev

Node.js Express,路由器,最佳参数作为扩展

来自分类Dev

可以在收听时添加到Node.js Express的路由吗?

来自分类Dev

如何在Node.js和Express 4上分开路由?

来自分类Dev

Node.js:使用Express路由进行URL重写以代理到etherpad

来自分类Dev

Node.js Express路由/控制器中基于单元测试承诺的代码

来自分类Dev

Node.js,Express,Redis-无法调用来自单独模块的路由

来自分类Dev

Node Express.js从单独文件中声明的路由访问变量

来自分类Dev

即使使用通配符,Node.js Express路由也无法捕获某些GETS

Related 相关文章

热门标签

归档