gpt4 book ai didi

javascript - 处理来自控制台的nodeJs输入?

转载 作者:行者123 更新时间:2023-11-30 20:12:33 27 4
gpt4 key购买 nike

我还是 nodeJs 的新手,我正在尝试创建一个输入流,但是一旦我通过调用 node fileName 在终端中启动应用程序,我的代码就无法正常工作。

我的输入格式是这样的:

- N the number of queries.
- second line represent a string containing two words separated by a space.
- N lines of a string containing two words separated by a space.

出于某种原因,终端没有显示任何东西。

这是我的代码:

'use strict';
const fs = require('fs');
var n = 0;
var position = '';
var destination = '';
var array = [];


process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', inputStdin => {
inputString += inputStdin;
});

process.stdin.on('end', _ => {
inputString = inputString.replace(/\s*$/, '')
.split('\n')
.map(str => str.replace(/\s*$/, ''));

main();
});

function readLine() {
return inputString[currentLine++];
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);


const s = parseInt(readLine(), 10);

const input= readLine().split(' ');

position = input[0] ;
destination = input[1];

console.log('our number is',s, 'and our position and destination:', position, destination);

ws.end();
}

最佳答案

您可以通过允许 readline 缓冲输入来简化整个过程:

'use strict';

const readline = require('readline');

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

rl.on('line', line => {
rl.write(
line.replace(/\s*$/, '')
);
});

关于javascript - 处理来自控制台的nodeJs输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52249115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com