2012-07-17 84 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