首页 > 解决方案 > process.stdin.setRawMode(true) 不是函数

问题描述

我正在尝试使用带有命令行的节点来构建蛇游戏,但出现错误:

process.stdin.setRawMode(true);
                  ^
TypeError: process.stdin.setRawMode is not a function

我在网上查了一下,发现它已经贬值了,所以使用它很有用:

if (process.stdin.isTTY) {
    process.stdin.setRawMode(true);
}

我试图用 if 封装“设置原始模式”这一行,以及整个函数,并删除了标准输入行,但没有任何效果,我无法使用箭头移动蛇。这是没有'if'的代码(在这两种情况下都不起作用):

readline.emitKeypressEvents(process.stdin);
process.stdin.setRawMode(true);
process.stdin.on('keypress', (str, key) => {
    if (key.ctrl && key.name === 'c') process.exit();
    switch (key.name.toUpperCase()) {
        case 'UP':
            State = Snake.enqueue(State, Snake.NORTH);
            break;
        case 'LEFT':
            State = Snake.enqueue(State, Snake.WEST);
            break;
        case 'DOWN':
            State = Snake.enqueue(State, Snake.SOUTH);
            break;
        case 'RIGHT':
            State = Snake.enqueue(State, Snake.EAST);
            break;
    }
});

标签: javascriptnode.js

解决方案


推荐阅读