[英]Node.js + MySQL doesn't get results or respond to Console.log
我是Node.js的新手。 我寫了這段代碼:
db.query("SELECT * FROM messages", function (error, results, fields){
if(error){
console.log("test");
}
if(results.length > 0) {
console.log(results);
}
});
但這不起作用,它不會打印任何內容來進行控制台。 在Linux上運行。
對於您的特定問題,請不要將結果放入if
語句中。 改為執行此操作,只是為了查看您的工作方式:
console.log( results.toString() );
console.log( JSON.stringify( results ) ); //sometimes this throws errors, if the object is complex
那應該讓您看到您正在使用什么。 如果reulsts
不是數組,則它將沒有.length
屬性,並且您也不會到達console.log
。
然而...
當我在Node代碼中看到原始的MySQL語句時,我總是推KnexJS 。 Knex為您處理兩個常見的事情,即數據庫連接和連接池,並且使編寫動態查詢變得輕而易舉。 (例如,您不必操縱SQL字符串...)
安裝knex npm install knex --save
在您的應用或環境設置中
var Knex = require('knex');
Knex.knex = Knex({...}); //set options for DB
在其他文件中,像這樣引用實例:
var knex = require('knex).knex;
因此,您的查詢可能如下所示:
var query = knex('messages').select();
console.log('About to perform query: ' + query.toString() );
query.exec( function( err, results ){
if(error){
console.log("test");
}
console.log(results);
//do other things here, like callback(results);
} );
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.