2016-12-31 21 views
0

私はexpressとmongoDBを使用して私の最初のアプリケーションをビルドしています。認証にいくつかの問題があります。私はMEAN Web開発ブックを使用して、私はこのチュートリアルを開始し、oauth認証を構築しようとしましたが、実際にoauthの処理を開始する前に、ローカル認証に執着してしまいました。私はいつもロードし続けているフォームを提出しようとしません。郵便配達員と私は応答を得ることができませんでした、私は多くのコードを持っていると私はどのような種類のエラーがこれを私のgitProjectを配置する原因になるかわからないので、この問題を引き起こす可能性がわからない。POSTリクエストが動作しない、ページがロードされ続ける

フォルダ構造:

folder structure

のgit:私は、問題は、私はパスポートモジュールを渡す方法に頼ることができ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

場合それはリロード手段thを維持する無限再帰の場合があります。あなたが失敗したときに/ registerにユーザーを戻して、再度呼び出し/登録するなどですか? –

+0

しかし私のやり方では、それをしてはならない、私は/ registerとpostへの投稿/ registerを持っている、2番目はフォームsubmitで起動されているので、無限再帰 –

+0

あなたは正しいです、そうでなければなりません。私はあなたがデフォルトのポストコールをしている可能性があるページの読み込みを疑った。 –

答えて

0

使用してみてください:

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

の代わりに:

app.use(bodyParser.urlencoded({ 
    extended: true 
})) 
関連する問題