2017-02-03 10 views
0

Я здесь новый, так что легко на меня. У меня есть следующий server.js:экспресс-статический путь недоступен для паспорта.js

var express = require('express'); 
var app = express(); 
var path = require('path'); 

var port = process.env.PORT || 3001; 
var cookieParser = require("cookie-parser"); 
var session = require('express-session'); 
var morgan = require("morgan"); 
var mongoose = require("mongoose"); 
var bodyParser = require("body-parser"); 
var passport = require("passport"); 
var flash = require("connect-flash"); 

app.use('/bower_components', express.static(__dirname + '/bower_components')); 
app.use('./config/auth', express.static(__dirname + './config/auth')); 
app.use('/app', express.static(__dirname + '/app')); 
app.set('views', __dirname + '/dist/views'); 
app.set('view engine', 'jade'); 

require('./config/passport')(passport); 
app.use(morgan('dev')); 
app.use(cookieParser()); 
app.use(bodyParser.urlencoded({extended:false})); 
app.use(session({secret: 'anystringoftext', 
       saveUninitialized: true, 
       resave: true})); 

app.use(passport.initialize()); 
app.use(passport.session()); 
app.use(flash()); 
app.use(express.static(__dirname + '/dist')); 

//app.use(express.static(path.join(__dirname, '/*'))); 
require('./app/routes.js')(app, passport); 

app.listen(port); 
console.log('server running on port:'+port); 

Я пытаюсь получить паспорт для работы с аутентификацией Google:

var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; 
var User = require('../app/models/user'); 
var configAuth = require('./config/auth'); 
module.exports = function(passport){ 
    passport.serializeUser(function(user, done){ 
     done(null, user.id); 
    }); 
    passport.deserializeUser(function(id, done){ 
     User.findById(id, function(err, user){ 
      done(err, user); 
     }) 
    }); 
    passport.use(new GoogleStrategy({ 
     clientID: configAuth.googleAuth.clientID, 
     clientSecret: configAuth.googleAuth.clientSecret, 
     callbackURL: configAuth.googleAuth.callbackURL 
    }, function(accessToken, refreshToken, profile, done) { 
     process.nextTick(function(){ 
      User.findOne({'google.id': profile.id}, function(err, user){ 
       if(err) 
        return done(err); 
       if(user) 
        return done(null, user); 
       else { 
        var newUser = new User(); 
        newUser.google.id = profile.id; 
        newUser.google.token = accessToken; 
        newUser.google.name = profile.displayName; 
        newUser.google.email = profile.emails[0].value; 

        newUser.save(function(err){ 
         if(err) 
          throw err; 
         return done(null, newUser); 
        }) 
        console.log(profile); 
       } 
      }); 
     }); 
    } 

    )); 
} 

и я получаю следующие ошибки:

Error: Cannot find module './config/auth' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object. (/Users/toddcoulson/Documents/PTO/config/passport.js:3:18) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object. (/Users/toddcoulson/Documents/PTO/server.js:20:1) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12)

Я пробовал вызывать ./config/auth,/config/auth,/config, много разных комбинаций, но, похоже, он не считывает файл auth файла конфигурации. Любые идеи о том, чего я не вижу? У меня был следующий код отсюда: https://github.com/BrentAureli/Youtube-Tutorials/tree/master/NodeJS%20Tutorials/Tutorial%2011%20-%20Google%20OAuth но я не думаю, что это точно моя ситуация, потому что я добавил браузер-синхронизацию с помощью экспресс-памяти и получил эту работу. Поэтому я не уверен, что браузер-sync имеет какое-то отношение к этому, но я думал, что добавлю это. Заранее благодарю за любую помощь. С точки зрения структуры папок все мои статические файлы находятся в/dist, и на том же уровне, что и server.js У меня есть папка и папка.

ответ

0

Похоже, что ваш файл passport.js, с которого вы звоните require('./config/auth'); уже находится в папке config. Так что на этой третьей строке passport.js она должна быть только var configAuth = require('./auth');, так как путь к файлу относительный.

+0

OMG, не могу поверить, я пропустил это. Благодарю. –