进展如何?
我如何将大数据(大请求)发送到FrontEnd?我是从PostgreSQL提取数据的,但是如何将此数据响应到FrontEnd(Json示例)? Thx
这是我的代码
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(process.stdout);
您必须更改代码以将JSON字符串传递到http响应:
stream.pipe(JSONStream.stringify()).pipe(res);
由于您已将结果流式传输到http响应,因此可以删除此行:
res.send(anyData);