【发布时间】:2020-08-31 21:31:49
【问题描述】:
怎么样了?
如何向前端发送大数据(巨大的请求)?我是从 PostgreSQL 中提取数据,但是如何将这些数据响应前端(Json 示例)?谢谢
这是我的代码
const express = require('express');
const cors = require('cors');
const pool = require('./keys/db');
const QueryStream = require('pg-query-stream')
const JSONStream = require('JSONStream')
const app = express();
const PORT = process.env.PORT || 3000;
//middleware
app.use(cors());
app.use(express.json())
//starting server
app.listen(PORT,()=>{
console.log(`Server is running on port ${PORT}`)
});
app.get("/to",async(req,res)=>{
try {
const anyData = await pool.connect((err, client, done) => {
if (err) throw err;
const query = new QueryStream(`SELECT"_reference180"."_description" AS person FROM "_reference180" `)
const stream = client.query(query)
//release the client when the stream is finished
stream.on('end', done)
stream.pipe(JSONStream.stringify()).pipe(process.stdout) // i can see my data in console
})
res.send(anyData); // THIS DONT SEND MY DATA, sorry;)
} catch (e) {
console.error(e.message);
}
});
【问题讨论】:
-
更新为 ```stream.pipe(JSONStream.stringify()).pipe(res)`` 并从您的代码中删除
res.send(anyData);
标签: javascript node.js json reactjs stream