我正在学习 NodeJS,但遇到了一个基本问题。我试图逐行读取一个文件,对于我读取的每一行,我都会向 / + <the line>
发送一个 HTTP 请求。例如:
wlist.txt 内容
line
line2
尝试失败:
const request = require('request') // for http request later
const readline = require('readline')
const fs = require('fs')
function fileLoader() {
const readInterface = readline.createInterface({
input: fs.createReadStream('C:\\etc\\code\\req\\wlist.txt'),
});
readInterface.on('line', function(line) {
return "test";
});
}
var aba = fileLoader();
console.log(aba); // undefined
我将 fileLoader 作为函数而不是“按原样”插入的逻辑是,我后来有一个将文件加载用于不同目的(例如 XML 请求或 JSON 请求)的开关盒。可以说:
switch (myArgs[0]) {
case 'json':
let myJSON = {username: 'val'};
request({
url: "http://192.168.1.2:3000",
method: "POST",
json: true,
body: myJSON
}, function (error, response, body){
console.log(response.headers)
console.log(response.body)
});
break;
case 'xml': .....
我完全意识到我遗漏了一些东西,可能是关于异步/ promise 或其他任何东西,但为了真正的教育,有人可以对我放轻松并告诉我方法吗?我已经尝试了一切,只是无法理解问题出在哪里..
最佳答案
我相信你想做这样的事情: https://gist.github.com/EB-BartVanVliet/533d55eb17c97f2a12ed25f479786f4a
基本上我所做的是:
- 解析文件,查找空行并删除它们
- 我声明了一个异步启动函数,这样我就可以在 for 循环中使用 await
- 记录输出
关于node.js - NodeJS 在函数内调用 readline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55967508/