1

ミドルウェア エラーが発生します。私はnode.jsとexpressに非常に慣れていません(これは私の最初の大きなプロジェクトです)。私はSOを検索し、グーグルはすでに長くて良いです。エラーは、私の app.js で注文する必要があります。たくさんの注文を試しましたが、何が間違っているのか正確にはわかりません。特にその理由は? Oauth にパスポートを使用しています

皆さんが私の質問を理解してくれることを願っています。英語は私の母国語ではありません。

エラー:

    if (!this._passport) { throw new Error('passport.initialize() middleware n
                                 ^
Error: passport.initialize() middleware not in use
    at IncomingMessage.req.login.req.logIn 

コード、私の 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 jsdom = require("jsdom"); 
// $ = require("jquery")(jsdom.jsdom().parentWindow()); 

var dbConfig = require('./db');
var mongoose = require('mongoose');
var app = express();
var User = require('./models/user');
//////
var http = require('http').Server(app);
var io = require('socket.io')(http);
var fs = require('fs');
var data = require('./countries.json');


// Configuring Passport
var passport = require('passport')
  , FacebookStrategy = require('passport-facebook').Strategy;

http.listen(3000);

// Connect to DB
mongoose.connect(dbConfig.url);

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

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.get('/auth/facebook', passport.authenticate('facebook'));


app.get('/auth/facebook/callback', passport.authenticate('facebook', {failureRedirect: '/'}), function(req, res) {
    console.log('Facebook');
    res.redirect('/home');
});

var expressSession = require('express-session');
// TODO - Why Do we need this key ?
app.use(expressSession({secret: 'mySecretKey'}));
app.use(passport.initialize());
app.use(passport.session());

 // Using the flash middleware provided by connect-flash to store messages in session
 // and displaying in templates
var flash = require('connect-flash');
app.use(flash());

// Initialize Passport
var initPassport = require('./passport/init');
initPassport(passport);

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

passport.use(new FacebookStrategy({
    clientID: "xx",
    clientSecret: "xxx",
    callbackURL: "http:localhost:3000/auth/facebook/callback"
    //redirect_uri: "/home"
  },
  function(accessToken, refreshToken, profile, done) {        
   User.findOne({ 'username' :  msg[1] }, function(err, user) {
    //save fb user to db
  }
));
module.exports = app;
4

0 に答える 0