Node.js 未捕获(承诺中)语法错误:大数据请求的JSON输入意外结束
我试图通过API post请求从查询MySQL数据库的nodeJS服务器获取数据,如果我将查询限制设置为1000000个条目,一切正常,但是,当我将限制增加到2000000时,我得到“未捕获(承诺)语法错误:JSON输入的意外结束”,如果我完全取消限制,react应用程序界面就会崩溃,我会得到以下错误“显示此网页错误代码时出错:状态\ U断点” 以下是服务器端代码:Node.js 未捕获(承诺中)语法错误:大数据请求的JSON输入意外结束,node.js,reactjs,Node.js,Reactjs,我试图通过API post请求从查询MySQL数据库的nodeJS服务器获取数据,如果我将查询限制设置为1000000个条目,一切正常,但是,当我将限制增加到2000000时,我得到“未捕获(承诺)语法错误:JSON输入的意外结束”,如果我完全取消限制,react应用程序界面就会崩溃,我会得到以下错误“显示此网页错误代码时出错:状态\ U断点” 以下是服务器端代码: app.post('api/results', (req, res) => { res.set('content-type
app.post('api/results', (req, res) => {
res.set('content-type', 'application/json');
const startdate = req.body.StartDate;
const enddate = req.body.EndDate;
console.log('start =', startdate);
console.log('end =', enddate);
pool.getConnection(function (err, connection) {
let queryString =
'SELECT table1.*,table2.* FROM 'table2' INNER JOIN 'table1' ON table1.id = table2.id WHERE table2.date BETWEEN ? AND ?';
let filter = [startdate, enddate];
var query = connection.query(queryString, filter);
query
.on('fields', function (fields) {})
.on('result', function (row) {
const FormattedRow = FormatRowDate(row);
return FormattedRow;
})
.stream({ highWaterMark: 50000 })
.pipe(JSONStream.stringify())
.pipe(res)
.on('finish', function () {
console.log('Data Retrieved Successfully');
connection.release();
});
});
客户端API请求如下所示:
const StartDate = JSON.parse(localStorage.getItem("CustomStartDate"));
const EndDate = JSON.parse(localStorage.getItem("CustomEndDate"));
let data = { StartDate: StartDate, EndDate: EndDate };
const results = await fetch(
'http://localhost:5000/api/results',
{
method: "post",
mode: "cors",
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
},
body: JSON.stringify(data)
}
)
.then(res => res.json())
.then(res => {
return res;
})
.catch(error => {
error.response = {
status: 0,
statusText:
"Cannot connect. Please make sure you are connected to internet."
};
throw error;
});
有没有一种方法可以在不应用限制的情况下获取所有数据库条目