• 沉默的话唠
    2019-10-18
    连续赢三次或者作弊之后,后面再想玩就玩不了。真的不再和我玩了,想玩的话,就得重启Index.js了~ 其他人想去玩的话怎么办呢~

    作者回复: 这个问题很棒。

    这里就涉及到http的会话管理也就是session,为每一个用户开辟一个游戏会话,并且把游戏数据存在这个会话里。
    要做这个东西,首先要确定一个标记用户的方式。一般是在cookie里种一个值,或者是直接使用登陆态。然后要为每一个用户标志符开辟一段存储空间,这个空间你可以直接在代码里用对象字面量声明。不过一般线上的分布式环境要使用redis之类的存储服务在另一个集群做。

    足够单独再说挺多了。但是一般只是做BFF层的话不需要用到这块,所以后面能不能开课说到,就看缘分了。

     2
     7
  • 昵称
    2019-10-21
    const urlObj = url.parse(req.url, true); //这里设置第二个参数为true就能直接解析query了,不用require('querystring')
        const query = urlObj.query;

    作者回复: 很棒,这个参数我还真不知道。大部分情况都用koa转出来的了

    
     3
  • mickey
    2020-02-08
    代码有两个问题:
    1. 只能在Chrome中运行,QQ等浏览器有不支持的js语法;
    2.如果机器“我再也不和你玩了!”后,需要重启应用才能继续玩。

    针对第二个问题,修改代码如下:
    1. index.html,增加“重来按钮”
      <button id="again" style="height: 40px; width: 80px">重来</button>
      const $button = {
            .......
            again: document.getElementById('again')
        }
    2. game.js,增加按钮组件ID
      if (['rock', 'scissor', 'paper', 'again'].indexOf(playerAction) == -1) {
        ......
      }

    3. index.js,增加业务逻辑判断
    http
        .createServer(function (request, response) {
            ......

            if (parsedUrl.pathname == '/game') {
                // 如果请求url是游戏请求,比如 http://localhost:3000/game?action=rock的情况
                // 就要把action解析出来,然后执行游戏逻辑
                const query = querystring.parse(parsedUrl.query);
                const playerAction = query.action;

                if (playerAction == 'again'){
                    playerWon = 0;
                    playerLastAction = null;
                    sameCount = 0;
                    response.writeHead(500);
                    response.end('重来吧!');
                    return
                }
                ......
            }    
    }
    展开
    
     1
  • Mryi
    2020-01-06
    为什么都用==,用严格等是不是更好?
    
    
  • KaKa
    2019-11-07
    node . 什么意思? node ./index.js 我知道, 前者是后者的简写吗

    作者回复: https://docs.npmjs.com/about-packages-and-modules

    可以参见此处的require规则。
    node命令相当于require指定路径运行。

    node . 就相当于require了当前文件夹。

    
    
  • Ada.H
    2019-10-17
    感觉要对node有哪些内置模块,以及各内置模块对应的功能内心要有个谱才能愉快玩耍吖…🤔

    作者回复: 时间有限不敢讲太啰嗦,官方文档挺齐全了,可以自己去试试

    
    
我们在线,来聊聊吧