node.js - NodeJS在函数中调用readline
问题描述
我正在学习 NodeJS,但遇到了一个基本问题。我正在尝试逐行读取文件,并且对于我读取的每一行都将 HTTP 请求发送到/ + <the line>
例如:
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 作为函数而不是“原样”插入的逻辑是,我稍后有一个 switch case,它将文件加载用于不同的目的,例如 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': .....
我完全知道我遗漏了一些东西,可能是关于异步/承诺或任何东西,但是为了真正教育,有人可以对我放轻松,给我指路吗?我已经尝试了一切,只是无法掌握问题所在..
解决方案
我相信你想做这样的事情: https ://gist.github.com/EB-BartVanVliet/533d55eb17c97f2a12ed25f479786f4a
基本上我所做的是:
- 解析文件,查找空行并删除那些
- 我声明了一个异步启动函数,以便我可以在 for 循环中使用 await
- 记录输出
推荐阅读
- node.js - 安装 VS2019 node-gyp find VS 仍然报错
- c# - Restsharp 集体查询
- nginx - fail2ban 会减慢我的系统或 iptables 的速度吗?
- dart - 学习飞镖,有人可以告诉我将这种函数分配给变量吗
- node.js - 关于使用 $in mikro orm mongodb 的类型问题
- python - 如何提高 Django,N + 1 问题中的查询性能?
- visual-studio-code - VSCode - 为“找不到模块的声明文件”禁用三个点
- typescript - 如何为 CanActivate 函数创建虚拟 ExecutionContext 以进行单元测试?
- reactjs - react-router v5 的嵌套路由不会更新布局
- couchbase - 简单的 N1QL 查询,用于从表中删除具有列名的条目。以及使用 Couchbase 的 where 条件的简单选择语句