相关疑难解决方法(0)

以交互方式从控制台读取价值

我想用一些控制台扩展来创建一个简单的服务器http服务器.我找到了从命令行数据中读取的代码段.

  var i = rl.createInterface(process.stdin, process.stdout, null);
  i.question('Write your name: ', function(answer) {
    console.log('Nice to meet you> ' + answer);
    i.close();
    process.stdin.destroy();

  });
Run Code Online (Sandbox Code Playgroud)

好好反复问问题,我不能简单地使用while(done) { }循环?如果服务器在提问时接收输出也很好,它会破坏该行.

console node.js

145
推荐指数
8
解决办法
17万
查看次数

从stdin读取所有文本

我正在Node.js中编写一个程序(在某些情况下)想要充当一个简单的过滤器:从stdin读取所有内容(直到文件末尾),进行一些处理,将结果写入stdout.

你怎么做'从stdin'读取一切?到目前为止我发现的最接近的解决方案,似乎一次从控制台一行一行,或者只在stdin是文件而不是管道时工作.

stdin synchronous node.js

25
推荐指数
4
解决办法
7035
查看次数

如何在nodejs同步中进行此请求调用?

我的nodejs应用程序中有一个名为get_source_at的函数.它需要一个uri作为参数,其目的是从该uri返回源代码.我的问题是我不知道如何使函数同步调用请求,而不是给它回调函数.我希望控制流停止加载uri所需的几秒钟.我怎样才能做到这一点?

function get_source_at(uri){
    var source;
    request({ uri:uri}, function (error, response, body) {
        console.log(body);
    });
    return source;
}
Run Code Online (Sandbox Code Playgroud)

此外,我已经阅读过关于'事件'以及节点是如何'偶像'的,我应该在编写代码时尊重它.我很高兴这样做,但我必须有一种方法来确保我在继续我的应用程序的控制流之前从uri获得源代码 - 所以如果不是通过使函数同步,那怎么办呢? ?

javascript request node.js

19
推荐指数
3
解决办法
9万
查看次数

按任意键继续在nodejs中

我需要一个函数来暂停脚本的执行,直到按下一个键.我试过了:

var stdin = process.openStdin(); 
require('tty').setRawMode(true);    

stdin.on('keypress', function (chunk, key) {
  process.stdout.write('Get Chunk: ' + chunk + '\n');
  if (key && key.ctrl && key.name == 'c') process.exit();
});
Run Code Online (Sandbox Code Playgroud)

但它只是在听按键而没有任何反应.该程序不会继续执行.

我该如何暂停执行?

javascript keypress node.js

19
推荐指数
5
解决办法
2万
查看次数

通过 Node.js 控制台获取用户输入

我刚刚开始使用 Node.js,我不知道如何获取用户输入。我正在寻找 python 函数input()或 C 函数的 JavaScript 对应版本gets。谢谢。

javascript node.js

13
推荐指数
3
解决办法
2万
查看次数

如何在nodejs中获取同步readline或使用异步“模拟”它?

我想知道是否有一种简单的方法来获取“同步” readline或至少在node.js中获得同步I / O的外观

我用这样的东西,但是很尴尬

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

var i = 0;
var s1 = '';
var s2 = '';

rl.on('line', function(line){
    if(i==0) { s1 = line; }
    else if(i==1) { s2 = line; }
    i++;
})

rl.on('close', function() {
    //do something with lines
})'
Run Code Online (Sandbox Code Playgroud)

取而代之的是,我希望它像这样简单

var s1 = getline(); // or "await getline()?"
var s2 = getline(); // or "await getline()?"
Run Code Online (Sandbox Code Playgroud)

有用的条件:

(a)建议不要使用外部模块或/ dev / stdio文件句柄,我正在向代码提交网站提交代码,但这些代码在那儿不起作用

(b)可以使用异步/等待或生成器 …

readline node.js

11
推荐指数
6
解决办法
1万
查看次数