2012-07-17 82 views
0

我拼命嘗試讓node.js在Ubuntu 12.04 LTS上再次運行。節點未啓動

我在2-3周前安裝了它,一切都很順利,我在那段時間每天都用它。

但今天,突然它不會工作了。事情是這樣的錯誤真是奇怪:

  • node -v作品,並返回v0.8.2
  • node命令工作過,我可以進入控制檯,並做了console.log
  • 但是當我使用節點與文件這樣node server.js,Ubuntu的只是去到一個新行:

kollektiv @ kollektiv-PC:〜/節點項目$節點server.js

kollektiv @ kollektiv-PC:〜/節點項目$

我已經重新安裝了Ubuntu的今天晚上,但我得到了相同的結果。

我還做了多個apt-get upgradeapt-get update以防某些node.js依賴項過期。

我安裝的node.js的方法是通過編譯源下面這個教程: - >Compiling Node.js from source on Ubuntu 10.24 - shapeshed

我甚至在服務器上文件chmod 777 server.js只是要確定,但是這並不會改變任何事情。

非常感謝您的幫助!

編輯:server.js

var net = require('net'), 
    server = net.createServer(); 
var crypto = require('crypto'), 
    shasum = crypto.createHash('sha256'); 

var alpha = [], 
    i = 0, 
    cle = ''; 
while(i < 256) { 
    alpha.push(String.fromCharCode(i)); 
    i++; 
} 

// CRYPTAGE -- START -- 

function cryptProcess(cle, txt) { 
    var k = txt.length, 
     j = k/cle.length, 
     cledeBase = cle, 
     txtc = '', 
     i = 1; 
    while(i < j) { 
     cle = cle + cledeBase; 
     i++; 
    } 
    function crypt(cleu, letr) { 
     //if(alpha.indexOf(letr) == -1) return "§"; 
     var biIndex = alpha.indexOf(letr) + alpha.indexOf(cleu), x; 
      sumIndex = biIndex - alpha.length; 
     x = sumIndex >= 0 ? alpha[sumIndex] : alpha[biIndex]; 
     return x; 
    } 
    while(k--) { 
     txtc = crypt(cle[k], txt[k]) + txtc; 
    } 
    return txtc; 
} 

function decryptProcess(cle, txtc) { 
    var k = txtc.length, 
     j = k/cle.length, 
     cledeBase = cle, 
     txt = '', 
     i = 1; 
    while(i < j) { 
     cle = cle + cledeBase; 
     i++; 
    } 
    txt = ''; 
    function decrypt(cleu, letc) { 
     //if(alpha.indexOf(letc) == -1) return "§"; 
     var biIndex = letc - alpha.indexOf(cleu), x; 
     x = biIndex >= 0 ? alpha[biIndex] : alpha[biIndex + alphabet.length]; 
     return x; 
    } 
    while(k--) { 
     txt = decrypt(cle[k], txtc[k]) + txt; 
    } 
    return txt; 
} 

// CRYPTAGE -- END -- 


server.on('connection', function(client) { 

    var connecOne = 0; 

    function talk(data) { 
     var msg = data.toString('utf8'); 
     var msgEnc = cryptProcess(cle, msg); 

     client.write(msgEnc); 
     console.log(msg + '\nsend as\n' + msgEnc); 
    } 

    client.once('data', function(data) { 

     function triHandShake() { 

     } 

    }); 

    client.on('data', function(data) { 

     var msg = data.toString('utf8'); 
     if(connecOne === 0) { 
      connectionOne(msg); 
      connecOne++; 
     } 
     else if(connecOne === 1) { 
      // Check for paragraph symbol 
      //authentification with cookie as cle 
     } 

     var msgDec = decryptProcess(cle, msg); 
     console.log(msgDec + '\nreiceved as\n' + msgDec); 

    }); 

    client.on('end', function() { 
     connecOne = 0; 
    }); 
}); 
+0

'server.js'中有什麼? – 2012-07-17 20:20:34

+0

我用server.js的內容編輯了我的答案。我認爲這是完全有效的node.js代碼。 – 2012-07-17 20:24:20

+2

你是不是錯過了'server.listen'調用來實際監聽客戶端請求? – JohnnyHK 2012-07-17 20:32:52

回答

2

需要調用server.listen偵聽連接,並如預期啓動處理的內容。

server.listen(8124, function() { //'listening' listener 
    console.log('server bound'); 
}); 
+0

謝謝,這解決了問題!奇怪的是,節點只是放棄了程序,並且拋出了一個錯誤,而換了新的一行。再次非常感謝你! – 2012-07-17 20:42:22

+0

它沒有中止,它剛剛結束,因爲你沒有打電話來實際等待任何事情。 – JohnnyHK 2012-07-17 20:48:16

+0

哦,我的這個愚蠢的錯誤。的xD – 2012-07-17 20:50:06