2017-05-24 5 views
1

urlのpostパラメータを含むnode.jsサイトがロードされているかどうかを確認しようとしています。フォームを表示し、urlパラメーターを使用してユーザーを同じサイトに誘導します。URLにパラメータが含まれている場合はノードjs canvasそれ以外の場合はキャンバスに汚れたリストを表示

しかし、私は、それは次のパラメータが含まれている場合は、URLを確認する方法を得ることはありません:?部屋= xxxは

それを含まない場合は、キャンバスを示しています。そうでない場合は、リストをロードし、urlパラメーターを含む同じサイトにリスト項目をクリックしてユーザーをリダイレクトします。

私の現在のコード:

world.handlebars:

{{#if room}} 
<canvas id="canvas"></canvas> 
<div id="textChat"></div> 

<script> 
    (function() { 
     var canvas = document.getElementById('canvas'), context = canvas.getContext('2d'); 
     window.addEventListener('resize', resizeCanvas, false); 

     function resizeCanvas() 
     { 
       var width = window.innerWidth; 
       var height = window.innerHeight - 100; 
       canvas.width = width; 
       canvas.height = height; 
       drawStuff(width, height); 
     } 

     resizeCanvas(); 

     function drawStuff(width, height) 
     { 
      context.fillStyle = "#68BBE3"; 
      context.fillRect(0, 0, width, height); 

      // Element 
      grd = context.createLinearGradient(150.000, 0.000, 150.000, 300.000); 
      grd.addColorStop(0.000, 'rgba(156, 218, 231, 1.000)'); 
      grd.addColorStop(0.468, 'rgba(113, 192, 225, 1.000)'); 
      grd.addColorStop(1.000, 'rgba(88, 178, 205, 1.000)'); 
      context.fillStyle = grd; 
      context.fillRect(0, 0, width, height/100 * 40); 
      // End Element 

      // Element 
      grd = context.createLinearGradient(83.333, 0.000, 216.667, 300.000); 
      grd.addColorStop(0.000, 'rgba(120, 175, 47, 1.000)'); 
      grd.addColorStop(0.464, 'rgba(145, 191, 92, 1.000)'); 
      grd.addColorStop(0.996, 'rgba(154, 195, 101, 1.000)'); 
      context.fillStyle = grd; 
      context.fillRect(0, height/100 * 40, width, height/100 * 60); 
     } 

    })(); 
</script> 
{{else}} 
<div class="container"> 
    <h4 class="page-header">Dashboard</h4> 
    <div class="list-group"> 
     <a href="?room=test" class="list-group-item">First item</a> 
     <a href="#" class="list-group-item">Second item</a> 
     <a href="#" class="list-group-item">Third item</a> 
    </div> 
</div> 
{{/if}} 

world.js:

var express = require('express'); 
var router = express.Router(); 

// Get Site 
router.get('/', ensureAuthenticated, function(req, res){ 
    res.render('world', {username: req.user.username}); 
}); 

function ensureAuthenticated(req, res, next){ 
    if(req.isAuthenticated()) 
    { 
     return next(); 
    } 
    else 
    { 
     req.flash('error_msg', 'You are not logged in'); 
     res.redirect('/users/login'); 
    } 
} 

module.exports = router; 

答えて

0

あなたはExpress documentationあたりとしてrequest.queryで変数にアクセスすることができます。

var room = req.query.room; 

ここでは、あなたが求めたものを複製しようとしました。

var express = require('express'); 
var router = express.Router(); 

// Get Site 
router.get('/', ensureAuthenticated, function(req, res){ 
    if (!req.query.room) { 
    // Room is not in URL. Handle redirect here. 
    } 
    next() 
}, function (req, res) { 
    res.render('world', {username: req.user.username}); 
}) 

function ensureAuthenticated(req, res, next){ 
    if(req.isAuthenticated()) 
    { 
     return next(); 
    } 
    else 
    { 
     req.flash('error_msg', 'You are not logged in'); 
     res.redirect('/users/login'); 
    } 
} 

module.exports = router; 
関連する問題