2014-01-21 3 views
1

для проекта, над которым я работаю, я решил не использовать HTTP-сервер узла, и в течение нескольких дней я пытался выяснить, как объединить socket.io -passport с nginx. К моему пониманию я вынужден использовать экспресс (для обработки сеанса). Очень странно, что все примеры, которые я нашел в сети, всегда используют сервер узла для обслуживания статического контента, и никто не сделал фактический рабочий пример с Nginx вместо. Позвольте мне описать мою проблему.Аутентификация с использованием Passport.js Обслуживание содержимого содержимого через Nginx

Рассмотрим следующий код

app.get('/home', function(reg, res){ 
    //check user session value, is logged in 
    if(req.user) 
     res.render('dash',{ 
      username: req.user['member_id']//req.user array contains serializeUser data 
     }); 
    else 
     res.render('index'); 

}); 

app.get('/logout', function(req, res){ 

    req.logout(); 
    res.redirect('/home'); 
}); 

//login form submit as post 

app.post('/login', 
    passport.authenticate('local', { 
     successRedirect: '/dashboard', 
     failureRedirect: '/home' 
    }) 
    ); 

app.get('/signup',routes.signup); 
app.get('*', routes.index); 

Как я проинструктировать JavaScript в моем файле JS, чтобы обслуживать статические файлы без путей?

ответ

0

В expressjs вы можете использовать статическое промежуточное ПО для обслуживания статического содержимого из определенной папки. Вам не нужно указывать маршрут для этого.

app.use(express.static(__dirname + '/public')); 

вы можете получить доступ к статическим файлам в локальном хосте общих папок: номер_порт/staticfile.js

Вы можете префикс статических файлов, вы можете использовать это:

app.use('/static', express.static(__dirname + '/public')); 

вы можете получить доступ с localhost: portnumber/static/staticfile.js

Если вы хотите, чтобы nginx обслуживал статические файлы, вы можете просто создать новый vhost в nginx для обслуживания статических файлов через nginx. Обычно nginx используется как обратный прокси-сервер для прокси-сервера для всех запросов на порт 80 в node.js.

+0

Спасибо за ответ, но я имел в виду другую вещь, все статические файлы будут обслуживаться Nginx, это цель моего вопроса. Другими словами, как я расскажу в своем приложении, что я буду обслуживая файлы на другом сервере (Nginx в моем случае), а не на том родном сервере http nodejs. Возможно, используя location.href =/signup, location.href =/login и т. Д.? – Skeptic

+0

вы можете обслуживать ваши статические файлы из любого места, вам нужно будет создать vhost в nginx, который укажет на каталог статических файлов в качестве корня документа, может быть вызван static.yoursite.com, а в вашем приложении ваши статические файлы со статическими. youtsite.com/staticFile – Yalamber

+0

@Yalamber Я не мог получить ответы на подобный вопрос (разные стеки). Не могли бы вы помочь мне с тем же? – gonephishing

Смежные вопросы