从本地数据库检索JSON响应

我试图从本地系统的数据本地浏览器中打印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')); }); 

当我试图与邮递员::我没有JSON响应 ::

在这里输入图像描述


  • 如何解决这个问题?

要么

  • 如何find我的问题的根源

{编辑}

 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')); }); 

我的命令提示符中有一个快照,像这样::

在这里输入图像说明

首先:您是否可以确认在启动请求时服务器不会崩溃? 响应代码0通常意味着连接被切断(或根本没有响应)。

应该使用async.series来调用多个asynchronous函数:如果只调用一个函数,则不需要使用它。

async.series的callback遵循Node.js的callback风格,这意味着它们async.series错误(或null )作为第一个参数,然后是函数的结果。 但是你不会发送任何参数: callback() 。 但是,您的代码仍然有效,因为您使用了在asynchronous函数中覆盖的局部variablesname_of_restaurants 。 要小心,因为这不是你应该如何使用这种模式。 这是一个更优雅的解决scheme:

 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 }); }); });