Arhn - архитектура программирования

Стратегия Passport Facebook с сохранением пользователя в MongoDB

Я пытаюсь выполнить обычный вход (со стратегией Facebook), и я продолжаю получать эту ошибку в своей консоли.

Ошибка: ENOENT, откройте «/home/ec2-user/XXXX/node_modules/express/node_modules/connect/node_modules/static-favicon/../public/favicon.ico»

Путь это?

Это мой код (токены приложения facebook находятся в другом файле js):

/**
 * Module dependencies.
 */

var config = require('./oauth.js');
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var mongoose = require('mongoose');
var passport = require('passport');
var FacebookStrategy = require('passport-facebook').Strategy;

var app = express();


// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));


app.get('/', routes.index);
app.get('/users', user.list);

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

http.createServer(app).listen(app.get('port'), function() {
    console.log('Express server listening on port ' + app.get('port'));
});

// MongoDB Settings
// Connection
mongoose.connect('mongodb://ec2-XX-XXX-XX-XXX.XX-XXX-2.compute.amazonaws.com/XXX', function(err) {
    if (err) {
        console.log(err);
    } else {
        console.log('Connected to the Users DB');
    }
});
// Schema
var usersSchema = mongoose.Schema({
    username: String,
    facebook_id: String
});
// Insert To DB
var insertUser = mongoose.model('Users', usersSchema);


// LogIn
passport.use(new FacebookStrategy({
    clientID: config.facebook.clientID,
    clientSecret: config.facebook.clientSecret,
    callbackURL: config.facebook.callbackURL
},
function(accessToken, refreshToken, profile, done) {
    console.log('Now Check User');
    insertUser.findOne({
        facebook_id: profile.id
    }, function(err, doc) {
        if (err) {
            console.log('user is alredy registered!');
            return done(err);
        }
        if (!insertUser) {
            var newgame = new insertUser({
                username: profile.username,
                facebook_id: profile.id
            });
            newgame.save(function(err) {
                if (err) {
                    console.log(err);
                } else {
                    console.log('Saved');
                }
                return done(err, doc);
            });
        } else {
            //found user. Return
            console.log('user is alredy registered!');
            return done(err, doc);
        }
    });
}
));


Ответы:


1

Решение было частью решения, предложенного badsyntax (спасибо, badsyntax). И в итоге вот что решило проблему:

app.use(express.favicon(__dirname + '/node_modules/express/node_modules/connect/node_modules/static-favicon/favicon.ico'));
13.04.2014
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..