是否可以在 node 中同步读取stdin.js?因为我正在用JavaScript编写一个brainfuck to JavaScript编译器(只是为了好玩).Brainfuck支持需要同步执行的读取操作.

我试过这个:

const fs = require('fs');
var c = fs.readSync(0,1,null,'utf-8');
console.log('character: '+c+' ('+c.charCodeAt(0)+')');

但这只会产生这样的输出:

fs:189
  var r = binding.read(fd, buffer, offset, length, position);
              ^
Error: EAGAIN, Resource temporarily unavailable
    at Object.readSync (fs:189:19)
    at Object.<anonymous> (/home/.../stdin.js:3:12)
    at Module._compile (module:426:23)
    at Module._loadScriptSync (module:436:8)
    at Module.loadSync (module:306:10)
    at Object.runMain (module:490:22)
    at node.js:254:10

推荐答案

我不知道这是什么时候出现的,但这是一个有益的进步:http://nodejs.org/api/readline.html

var readline = require('readline');

var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});

rl.on('line', function (cmd) {
  console.log('You just typed: '+cmd);
});

现在我可以一行一行地从stdin读了.快乐的日子.

Node.js相关问答推荐

如何使用updateMany()和Node.js的方法?

如何使用Node.js、Express和Mongoose创建多个API

Mongoose更新在^8.0.3版中,许多似乎不能按预期工作

无法从MongoDB文档中保存的对象数组中获取对象的属性

如何从谷歌云中部署的应用程序连接到mongoDB Atlas?

express app.post的多个参数在Node.js中的定义是什么

我应该如何解决这个 Angular node 包模块依赖冲突?

为什么 $or 在带有正则表达式的mongoose 中不能正常工作

在 React 和 Socket.io 中使用 Effect 钩子重新渲染两次

用户通过 oauth2 twitter 授权或通过Passport discord后如何重定向到 React/Vue 路由?

根据 mongoDB 中存在的唯一字符串生成唯一字符串的最佳方法

如何为一个网站实现这 2 个网址.即 www.administrator.sitename.com 和 www.sitename.com?

users.watch(在 gmail google api 中)如何收听通知?

在安装 tensorflow 时遇到问题

如何使动态私有IP地址静态?

Cassandra node.js 驱动程序有替代品吗?

带有 node.js 和 express 的基本网络服务器,用于提供 html 文件和assets资源

调用 require 时的 const vs let

为什么 Node.js 被命名为 Node.js?

Google Firebase 错误(函数返回未定义、预期的 Promise 或值)