我正在尝试将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);
}
当我用 ws.write(req)替换 req.pipe(ws)时,我收到错误消息:
TypeError: Invalid non-string/buffer chunk
当我用 ws.write(JSON.stringify(req))替换 ws.write(req)时,我收到错误消息:
TypeError: Converting circular structure to JSON
答案 0 :(得分:0)
您只能将字符串或缓冲区写入文件。
当您尝试使用JSON.stringify()将对象转换为字符串时,您会收到错误,因为该对象包含循环引用(不允许),以及您无法使用此函数的原因。
在将对象转换为字符串之前,您可以尝试将对象convert转换为JSON。
但是,在将它们转换为字符串之后,您还可以尝试仅提取请求的相关字段并将其保存到文件中。