2013-05-19 117 views
1

我必須使密碼使用node.js 請幫助.. !!! (你可以使密碼鍵??) 我試過了。 。 感謝您的幫助:)在Node.js中,無法讀取未定義的屬性「長度」

function encrypt(data,j) { 
    for(var i = 0, length = data.length; i<length; i++) { 
     j = data.charCodeAt(i); 
     //console.log(j); 
     String.fromCharCode(j); 
     process.stdout.write(j); 
    } 
    return data; 
} 

function decrypt(data) { 
    return data; 
} 

process.stdin.resume(); 
process.stdin.setEncoding('utf-8'); 

process.stdout.write('Input (암호화할 문장을 입력) : '); 

process.stdin.on('data',function(data,j) { 
    //data = data.trim(); 
    process.stdout.write('평문(your input) :' + data); 
    process.stdout.write('암호문(encrypt) :'); 
    encrypt(j); 
    process.stdout.write('복호문(decrypt) :'); 

    process.exit(); 
    }); 
+0

'j'應不是'encrypt()'中的參數。 – SLaks

+0

@SLaks ooooh謝謝!但仍然錯誤..(: –

回答

1

process.stdin是可流。回調接受一個參數(see doc example)。爲了安全起見,我只會在stdin結束活動上致電encrypt()。通過連接data調用。

process.stdin.on('data',function(data) { 
    process.stdout.write('평문(your input) :' + data); 
    process.stdout.write('암호문(encrypt) :'); 
    encrypt(data); 
    process.stdout.write('복호문(decrypt) :'); 
    process.exit(); 
}); 

如果是我,我會收集來自標準輸入的所有數據作爲字符串(也可以是字符串或緩衝區),並對其進行處理的數據流的end事件:

var input = ''; 
process.stdin.on('data',function(data) { 
    process.stdout.write('평문(your input) :' + data); 
    input+=data; 
}); 

process.stdin.on('end', function(){ 
    process.stdout.write('암호문(encrypt) :'); 
    encrypt(input); 
    process.stdout.write('복호문(decrypt) :'); 
    process.exit(); 
}); 
+0

我真的很感激它,我會嘗試那一個! –

相關問題