2014-10-05 3 views
0

У меня есть следующий код:вывода сценария в NodeJS

app.get('/scr', function(req, res) { 
    var command = spawn(scripts + "/script.sh"); 
    command.stdout.on('data', function (data) { 
     res.send(data); 
    }); 
}); 

Скрипт выводит Hello World!. Я хотел бы получить этот вывод в своем браузере при переходе на http://localhost:XXXX/scr. Однако, это требует, чтобы я загрузил файл с Hello World! внутри. Как я могу получить этот вывод в моем браузере?

+0

где у вас? – webduvet

+0

@lombausch: Возможно [здесь] (https://hg.mozilla.org/mozilla-central/file/tip) или [здесь] (https://src.chromium.org/svn/trunk/src/). Более серьезно, я думаю, что они задают чисто серверный вопрос; единственная часть вопроса, связанная с клиентом, заключалась в том, почему браузер запрашивал их для загрузки, а не просто для просмотра. – icktoofay

ответ

2

Вероятно, событие data будет запущено несколько раз, но send можно вызвать только один раз. Вместо использования send используйте write и end; или, так как command.stdout это поток, просто конвейер в ответ:

command.stdout.pipe(res); 

Вы можете явно задать тип MIME до этого, хотя, например:

res.type('text/plain'); 
0

Вы нужно установить Тип содержимого.

res.set('Content-Type', 'text/plain'); 
Смежные вопросы