2017-02-21 34 views
0

Я пытаюсь получить запрос после 'status.html', например localhost:3000/status.html?channel="string that I want to get".Попытка получить запрос в функции app.get с помощью выражения в node.js

Итак, я написал код, как показано ниже.

app.get('/status.html', isLoggedIn, function(res, req){ 
    if (req.query.channel){ 
    if (req.isAuthenticated()){ 
     res.redirect('/status'); 

    }else{ 
     console.log("Please Log in to access to this webpage"); 
     res.redirect('/login'); 

    } 
    } 
}); 

Однако, это не даже пройти через app.get '/status.html' ...

Что моя проблема здесь ...? Может ли кто-нибудь помочь мне здесь ..?

Спасибо

Только в случае, мой каталог устанавливается следующим образом

node_modules 
public 
    images 
    javascripts 
    js 
    stylesheets 
    status.html 
routes 
views 
    login 
app.js 
package.json 

ответ

1

app.get(path, callback) является маршрут

путь может быть stringa regex pattern

// if you use `/status.html` then html `href` should as be same path 
// `/status.html` 
// app.get('/status.html', isLoggedIn, function(res, req){ 

app.get('/status', isLoggedIn, function(res, req){ 
     if (req.query.channel){ 
     if (req.isAuthenticated()){ 
      res.redirect('/status'); 

     }else{ 
      console.log("Please Log in to access to this webpage"); 
      res.redirect('/login'); 
     } 
     } 
    }); 

в вашем html-файле вам нужно создать ели якорь тег с href

HTML файл

// <a href ="/status.html" class="btn btn-default btn-sm">Status</a> 
<a href ="/status" class="btn btn-default btn-sm">Status</a> 

при нажатии кнопки состояния он будет вызывать /status маршрут app.get()

// `/status.html` is just a route path it has nothing to do with html files 
+0

Благодарим вас за ответ! :) Хм .. Понятно ... Я уже установил и перенаправил на «localhost: 3000/status.html» код и работал без проблем, поэтому я решил использовать app.get ('/ status.html'. ..) вещь ....: '( – paulc1111

+0

'localhost: 3000/status.html' означает, что вы статически загружаете файл html, Посмотрите на выражение' res.sendFile() 'function –

+0

Спасибо! :) Я посмотрю на функцию выражения res.sendFile() :) Еще раз спасибо за помощь! – paulc1111

0

Пожалуйста, удалите файл status.html из общедоступного каталога и создать маршрут, в основном он запрашивает ваш общий каталог, Если вы хотите использовать status.html в общедоступном каталоге, вы можете реализовать там работу ajax.

+0

Благодарим вас за ответ! :) Как я могу сделать с ajax ...? : '( – paulc1111