gpt4 book ai didi

json - 从本地数据库检索 JSON 响应

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:21 25 4
gpt4 key购买 nike

我正在尝试在本地浏览器中打印来自本地系统的数据的 JSON 响应

<小时/>

我有我的代码::

var express=require('express');
var fs=require('fs');
var http=require('http');
var crypto=require('crypto');
var mysql=require('mysql');
var async=require('async');

var app=express();

var connection=mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'ImagePostingDB'
});

connection.connect();
app.set('port',process.env.PORT||7002);
app.use('/Details',express.static(__dirname+'/public/images'));
app.use(express.bodyParser());



app.get('/DescriptionSortedPrice/',function(request,response){
var name_of_restaurants;
async.series( [
// Get the first table contents
function ( callback ) {
connection.query('SELECT * FROM ImagePostingtable ORDER BY Sl_no', function(err, rows, fields)
{
console.log('Connection result error '+err);
name_of_restaurants = rows;
callback();
});

}
// Send the response
], function ( error, results ) {
response.json({
'restaurants' : name_of_restaurants
});
});
});



http.createServer(app).listen(app.get('port'),function(){
console.log('Express server listening on port'+app.get('port'));
});
<小时/>

当我尝试使用 postman 时::我没有 JSON 响应::

enter image description here

<小时/>
  • 如何解决这个问题?

  • 如何找到问题的根本原因
<小时/>

{编辑}

var express=require('express');
var fs=require('fs');
var http=require('http');
var crypto=require('crypto');
var mysql=require('mysql');
var async=require('async');

var app=express();

var connection=mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'ImagePostingDB'
});

connection.connect(function(err) { if ( !err ) { console.log("Connected to MySQL"); } else if ( err ) { console.log(err); } });
app.set('port',process.env.PORT||7002);
app.use('/Details',express.static(__dirname+'/public/images'));
app.use(express.bodyParser());





app.get('/DescriptionSortedPrice/',function(request,response){
connection.query('SELECT * FROM ImagePostingtable ORDER BY Sl_no', function(err, rows, fields) {
if (err) {
return response.send(500, err.message);
}

response.json({
'restaurants' : rows
});
});
});






http.createServer(app).listen(app.get('port'),function(){
console.log('Express server listening on port'+app.get('port'));

});
<小时/>

我的命令提示符中有一个快照,如下所示::

enter image description here

最佳答案

首先:您能否确认发起请求时服务器没有崩溃?响应代码 0 通常意味着连接被切断(或者根本没有发送响应)。

async.series应该用于串联调用多个异步函数:如果只调用一个函数,则无需使用它。

async.series 中的回调遵循 Node.js 的回调风格,这意味着它们将错误(或 null)作为第一个参数,然后是功能。但您不向其发送任何参数:callback()。但是,您的代码仍然有效,因为您使用了在异步函数中覆盖的局部变量 name_of_restaurants。请小心,因为这不是您应该使用此模式的方式。这是一个更优雅的解决方案:

app.get('/DescriptionSortedPrice/',function(request,response){
connection.query('SELECT * FROM ImagePostingtable ORDER BY Sl_no', function(err, rows, fields) {
if (err) {
console.log('Encountered an error:', err.message);
return response.send(500, err.message);
}

console.log('Found results:', rows);
response.json({
'restaurants' : rows
});
});
});

关于json - 从本地数据库检索 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20608513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com