2017-08-23 10 views
1

私のクエリの結果をNode.jsのJSONレスポンスにする方法を知りたいのですが現在、JSONのDBから結果を取得していますが、その値にアクセスできません。私のコードは以下の通りです。ラインresponseJSON.response = results[0].headlineことで データベース結果をJSONに変更

connection.connect(); 

connection.query('select * from ttnews order by post_date DESC Limit 0,10', 
function (error, results, fields) { 
    if (error) throw error; 
    console.log(results); 
}); 

connection.end(); 
responseJSON.response = results[0].headline; 
callback(null, responseJSON); 

は、私は任意の助けが理解されるであろう results is undefined

エラーを取得しています。 エクスプレス4.xの

+0

こんにちは、あなたは完全な提供することができますがログに記録されますあなたのメソッドのコード? 'express 'を使っていますか? – SirWojtek

答えて

0

MySQLのDBから出力行はJSON形式です。例えば

sqlConnect.connection.query('SELECT * from users', function(err, rows, fields){ 
    if (err) { 
     console.log("Querying error"); 
    } else { 
     console.log(rows); 
    } 
    sqlConnect.connection.end(); 
}); 

出力は、だから今、あなたがを使用して個々の値を取得することができ、フォームの

[ RowDataPacket { 
    id: 1, 
    username: 'Dani', 
    password: '1q2w3e4r', 
    verified: 0 } ] 

です。オペレータ。たとえば、にconsole.logは(行が[0] .username)値 'ダニ' が

+0

これは以前と同じように動作しますが、JSON変数に値を追加しようとすると何らかの理由で行が定義されません。私のコード 'responseJSON.response = rows [0] .username;を参照してください。これはsqlConnect関数の外部で行われます。' rows [0] .username'を文字列で置き換えると注意してください。 –

+0

あなたが達成しようとしているものの完全なスニペットであなたの質問を更新することができます –

+0

質問が更新されました –

1

var express = require('express'); 
var app = express(); 
var mysql = require('mysql'); 
var readline = require('readline'); 
var con = mysql.createConnection({ 
host : 'localhost', 
user : 'root', 
password : '', 
database : 'cmd'//your database name 
}); 
con.connect(function(err){ 
if(err){ 
console.log('Error Connecting to Database'); 
} 
}); 
app.get('/', function(req, res){ 
con.query('SELECT * FROM ttnews order by post_date DESC Limit 0,10',function(error, data){ 
     if(error) { 
      console.log(error) 
     }else{ 
      res.json(data) 
     } 
    }); 
}); 
app.listen(3000,function(){ 
    console.log('server listening on 3000'); 
}); 

・ホープ、このことができます。このコードを試してみてください...

関連する問題