2013-07-16 29 views
0

我試圖做一個簡單的測試查詢來獲得節點的mysql模塊工作,但它沒有連接到數據庫。 這是我在app.js代碼:Nodejs的mysql模塊沒有連接到數據庫

var http = require('http'), 
io  = require('socket.io'), 
sys  = require('sys'), 
express = require('express'), 
mysql = require('mysql'), 
conn = mysql.createConnection({ 
    host:'localhost', 
    port:'3000', 
    user:'root', 
    password:'pass', 
    database:'some_database' 
}); 

var port = 3000; 

var app = express(); 

app.set('views', __dirname + '/views'); 
app.engine('html', require('ejs').renderFile); 

app.get('/', function(req,res) { 
     res.render('./index.html',{test:'Hello'}); 
}); 

app.get('/home', function(req,res) { 
     res.render('./index.html'); 
}); 

var chat_log = new Array(); 

var socket = io.listen(http.createServer(app).listen(port)); 

if(conn.connect()){console.log('yay');}else{console.log('whyyyy');}; 

console.log(conn); 

conn.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { 
    if (err) throw err; 

    console.log('The solution is: ', rows[0].solution); 
}); 

conn.end(); 

的console.log(康涅狄格州)返回如下:

{ domain: null, 
    _events: {}, 
    _maxListeners: 10, 
    config: 
    { host: 'localhost', 
    port: '3000', 
    socketPath: undefined, 
    user: 'root', 
    password: 'snareline1', 
    database: 'test', 
    insecureAuth: false, 
    supportBigNumbers: false, 
    bigNumberStrings: false, 
    debug: undefined, 
    timezone: 'local', 
    flags: '', 
    queryFormat: undefined, 
    pool: undefined, 
    multipleStatements: false, 
    typeCast: true, 
    maxPacketSize: 0, 
    charsetNumber: 33, 
    clientFlags: 193487 }, 
    _socket: 
    { _connecting: true, 
    _handle: 
     { fd: -1, 
     writeQueueSize: 0, 
     owner: [Circular], 
     onread: [Function: onread] }, 
    _readableState: 
     { highWaterMark: 16384, 
     buffer: [], 
     length: 0, 
     pipes: null, 
     pipesCount: 0, 
     flowing: false, 
     ended: false, 
     endEmitted: false, 
     reading: true, 
     calledRead: true, 
     sync: false, 
     needReadable: true, 
     emittedReadable: false, 
     readableListening: false, 
     objectMode: false, 
     defaultEncoding: 'utf8', 
     ranOut: false, 
     awaitDrain: 0, 
     readingMore: false, 
     decoder: null, 
     encoding: null }, 
    readable: true, 
    domain: null, 
    _events: 
     { end: [Object], 
     finish: [Function: onSocketFinish], 
     _socketEnd: [Function: onSocketEnd], 
     data: [Object], 
     readable: [Function], 
     connect: [Object], 
     close: [Object], 
     error: [Object], 
     drain: [Function: ondrain] }, 
    _maxListeners: 10, 
    _writableState: 
     { highWaterMark: 16384, 
     objectMode: false, 
     needDrain: false, 
     ending: false, 
     ended: false, 
     finished: false, 
     decodeStrings: false, 
     defaultEncoding: 'utf8', 
     length: 0, 
     writing: false, 
     sync: true, 
     bufferProcessing: false, 
     onwrite: [Function], 
     writecb: null, 
     writelen: 0, 
     buffer: [] }, 
    writable: true, 
    allowHalfOpen: false, 
    onend: null, 
    destroyed: false, 
    errorEmitted: false, 
    bytesRead: 0, 
    _bytesDispatched: 0, 
    _pendingData: null, 
    _pendingEncoding: '', 
    pipe: [Function], 
    addListener: [Function], 
    on: [Function], 
    pause: [Function], 
    resume: [Function], 
    read: [Function], 
    _consuming: true }, 
    _protocol: 
    { domain: null, 
    _events: 
     { drain: [Object], 
     error: [Object], 
     close: [Object], 
     data: [Function: ondata], 
     end: [Object], 
     handshake: [Function], 
     unhandledError: [Function] }, 
    _maxListeners: 10, 
    readable: true, 
    writable: true, 
    _config: 
     { host: 'localhost', 
     port: '3000', 
     socketPath: undefined, 
     user: 'root', 
     password: 'snareline1', 
     database: 'test', 
     insecureAuth: false, 
     supportBigNumbers: false, 
     bigNumberStrings: false, 
     debug: undefined, 
     timezone: 'local', 
     flags: '', 
     queryFormat: undefined, 
     pool: undefined, 
     multipleStatements: false, 
     typeCast: true, 
     maxPacketSize: 0, 
     charsetNumber: 33, 
     clientFlags: 193487 }, 
    _connection: [Circular], 
    _callback: null, 
    _fatalError: null, 
    _quitSequence: null, 
    _handshakeSequence: 
     { domain: null, 
     _events: [Object], 
     _maxListeners: 10, 
     _callback: undefined, 
     _ended: false, 
     _callSite: [Error], 
     _config: [Object], 
     _handshakeInitializationPacket: null }, 
    _handshaked: false, 
    _destroyed: false, 
    _queue: [ [Object] ], 
    _handshakeInitializationPacket: null, 
    _parser: 
     { _supportBigNumbers: false, 
     _buffer: <Buffer >, 
     _longPacketBuffers: [], 
     _offset: 0, 
     _packetEnd: null, 
     _packetHeader: null, 
     _onPacket: [Function], 
     _nextPacketNumber: 0, 
     _encoding: 'utf-8', 
     _paused: false } }, 
    _connectCalled: true, 
    state: 'disconnected' } 

感謝您的幫助。

+0

你有一個MySQL服務器在本地主機上運行? –

+0

對於這樣的問題,這是非常多的代碼。請儘量保持最低*。 – tadman

+0

是的,我的服務器正在本地主機上運行。我將編輯代碼,以便只顯示相關部分。 –

回答

1

嘗試:

conn = mysql.createConnection({ 
    host:'localhost', 
    port:'3306', 
    user:'root', 
    password:'pass', 
    database:'some_database' 
}); 
+0

,這給我一個訪問被拒絕的錯誤 –

+0

mySql的默認端口是3306.你可以參考這個鏈接:http://dev.mysql.com/doc/refman/5.5/en/access-denied.html(在你的上面的代碼中,mysql端口和你的節點應用端口3000衝突)。 – SR5

+0

噢好吧..我想我可能需要嘗試取消註釋mysql.conf中的跳過網絡連接。如果這樣做,那麼你得到的複選標記:) –