2013-05-19 3 views
1

node.js를 사용하여 암호를 작성해야합니다. 도와주세요 .. !!! (그리고 암호 키를 만들 수 있습니까?) 시도했습니다. . 당신의 도움에 대한 감사합니다 :)Node.js에서 정의되지 않은 'length'속성을 읽을 수 없습니다.

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

한다 : 그것은 나를라면

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 이벤트에 (그것은 문자열이나 버퍼가 될 수 있습니다) 'encrypt()'의 매개 변수가 아닙니다. – SLaks

+0

@SLaks 우우 감사합니다! 하지만 여전히 오류 .. (: –

답변

1

process.stdin 읽을 수있는 스트림입니다. 콜백은 단일 매개 변수 (see doc example)를 허용합니다. 안전을 기하기 위해 encrypt()stdin 최종 이벤트에만 사용합니다. data의 연결로 전화하세요. j`는`

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

정말 고마워, 그 하나를 시도 할 것입니다! –

관련 문제