2013-05-19 156 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

我真的很感激它,我会尝试那一个! –

相关问题