Если вы зарегистрируете
var options = {
key: fs.readFileSync('./key.pem', 'utf8'),
cert: fs.readFileSync('./csr.pem', 'utf8')
};
, вы можете заметить, что из-за неправильного кодирования есть недопустимые символы.
stdout
и stderr
- это не строки, а потоки. Один из способов думать о них, как о резервуаре для воды: процесс сбрасывает воду в верхнюю часть, и у вас есть кран внизу, к которому вы можете получить доступ. stdout.read()
говорит: «откройте кран и дайте ему поработать, пока в баке больше не останется воды» - если вы не поставили ведро под кран (назначая переменную в этой аналогии), вода исчезнет, и открытие крана из пустого резервуара снова не вернет его.
Если вам нужно обращаться к одному и тому же выходу из потока несколько раз, вам нужно сохранить его в переменной, а затем ссылаться на эту переменную каждый раз. В вашем случае вы можете сделать что-то вроде:
output = proc.stdout.read()
if not output:
# your error handling here
for line in output.split("\n"):
# do stuff with line here