node.js - NodeJS 在函数内调用 readline

标签 node.js

我正在学习 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/

相关文章:

node.js - 如何在sequelize中实现多对多关联

node.js - 如何控制graphicsmagick(用于Node)中的输出位深度?

node.js - 快报- Jade 找不到意见

node.js - 使用 Axios 或 fetch 在 Node 内进行 self REST Api 调用?

javascript - 正确使用 Express 的 res.render() 和 res.redirect()

node.js - module.getProviderByKey(providerKey).instance 返回实例而不注入(inject)其依赖项

node.js - 如何使用NodeJS和child_process.exec以管理员身份运行程序?

javascript - 未决 promise 后 JSON 输入错误意外结束

javascript - Node.js 中的 +new Date 语法是什么

node.js - 如何使用 pm2 观看和重新加载 ExpressJS 应用程序