簡體   English   中英

Node.js + MySQL無法獲得結果或對Console.log作出響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM