2016-12-31 11 views
0

поэтому я создаю свое первое приложение с помощью express и mongoDB, и у меня возникают проблемы с аутентификацией, я использовал книгу разработки MEAN для создания структуры моих папок по шаблону MVC, и затем я начал с этого учебника и попытался создать аутентификацию oauth, но, прежде чем начинать действительно делать вещи oauth, я застрял в локальной аутентификации, я попытаюсь представить форму, в которой он постоянно загружается, и никогда не дает мне ответа, с почтальоном я получаю Не могу получить никакого ответа, я не знаю, что может вызвать эту проблему, так как у меня много кода, и я понятия не имею, какая ошибка может привести к этому, я поместил бы здесь свой gitProject.POST запрос не работает, страница продолжает загружаться

структура папок:

folder structure

мерзавец:project

я чувствую, что проблема может полагаться на том, как я передавайте модуль паспорта:

.config/экспресс

var config   = require('./config'); 
var express   = require('express'); 
var passport  = require('passport'); 
var flash   = require('connect-flash'); 
var compress  = require('compression'); 
var cookieParser = require('cookie-parser'); 
var session   = require('express-session'); 
var bodyParser  = require('body-parser'); 
var morgan   = require('morgan'); 
var methodOverride = require('method-override'); 
var expressLayouts = require('express-ejs-layouts'); 

module.exports = function(){ 
    var app = express(); 

    require('./passport')(passport); 

    if(process.env.NODE_ENV === 'development') 
    { 
     app.use(morgan('dev')); 
    } 
    else if(process.env.NODE_ENV === 'production') 
    { 
     app.use(compress()); 

    } 
    app.use(cookieParser()); 

    app.use(bodyParser.urlencoded({ 
     extended:true 
    })); 
    app.use(morgan('dev')); 

    app.use(bodyParser.json()); 
    app.use(methodOverride()); 

    app.use(session({ 
     saveUninitialized: true, 
     resave: true, 
     secret: 'keyboard' 
    })); 



    app.use(passport.initialize()); 
    app.use(passport.session()); // persistent login sessions 
    app.use(flash()); 

    app.set('views', './app/views'); 
    app.set('view engine','ejs'); 
    app.use(expressLayouts); 



    require('../app/routes/index.server.routes.js')(app,passport); 
    require('../app/routes/register.server.routes.js')(app,passport); 
    require('../app/routes/login.server.routes.js')(app,passport); 
    require('../app/routes/profile.server.routes.js')(app,passport); 
    app.use(express.static('./public')); 
    return app; 
} 

..app/маршруты/register.server.routes.js

var register = require('../../app/controllers/register.server.controller'); 
module.exports = function(app,passport) { 
app.route('/register') 
.post(function(req,res){ 
     passport.authenticate('local-signup', { 
     successRedirect : '/profile', // redirect to the secure profile section 
     failureRedirect : '/register', // redirect back to the signup page if there is an error 
     failureFlash : true // allow flash messages 
    })}) 
.get(register.getPage); 
}; 
+0

если он продолжает перегружать средства может быть случай бесконечной рекурсии. что при сбое вы возвращаете пользователя в/register, который снова вызывает/регистрируется и так далее? –

+0

, но по моему способу это не должно быть сделано, у меня есть запрос на получение/регистрация и запись в/register, вторая активируется с формой submit, поэтому она не должна быть в бесконечной рекурсии: S –

+0

Вы правы, вот как это должно быть. Я подозревал при загрузке страницы, которую вы могли бы сделать по умолчанию. –

ответ

0

Попробуйте использовать:

app.use(bodyParser.urlencoded({ 
    extended: false 
})) 

Вместо:

app.use(bodyParser.urlencoded({ 
    extended: true 
}))