【问题标题】:Saving Express request object to a file将 Express 请求对象保存到文件
【发布时间】:2016-04-17 13:23:59
【问题描述】:

我正在尝试将 Express 请求对象通过管道传输到可写流。 NodeJS 创建一个文件,但它是空的。我错过了什么?

var express = require('express');
var fs = require('fs');

var app = express();
    app.use(middleWare);
    app.listen(3000);

function middleWare(req, res, next){
    var ws = fs.createWriteStream('./test.txt');
    req.pipe(ws);
    res.sendStatus(200);
}

当我将 req.pipe(ws) 替换为 ws.write(req) 时出现错误:

 TypeError: Invalid non-string/buffer chunk

当我将 ws.write(req) 替换为 ws.write(JSON.stringify(req)) 时,出现错误:

  TypeError: Converting circular structure to JSON

【问题讨论】:

标签: node.js express stream


【解决方案1】:

您只能将字符串或缓冲区写入文件。

当您尝试使用 JSON.stringify() 将对象转换为字符串时,会出现错误,因为该对象包含不允许的循环引用,以及无法使用该函数的原因。

您可以尝试将对象convert 转换为 JSON,然后再将其转换为字符串。

但您也可以尝试仅提取请求的相关字段并将它们转换为字符串后将它们保存到文件中。

【讨论】:

  • 谢谢!我使用 NPM 模块 CircularJSON 进行转换。一切正常!
猜你喜欢
  • 2015-09-16
  • 2015-05-24
  • 2016-04-21
  • 1970-01-01
  • 2016-08-15
  • 2013-12-27
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多