使用Heroku时如何在Node.js中插入换行符?

时间:2015-07-05 16:47:20

标签: node.js heroku

我试图在Heroku上创建一个Node.js应用程序,它将输出10个不同的ASCII面(我已经拥有了所需的模块)。使用Heroku上的Node教程,我已将其设置为输出10个面。但是,当我尝试实际运行代码时,它会将所有面内联相互放置。我应该如何设法使面部在他们自己的线上输出(如果这甚至是一个单词)?

我当前的index.js如下:

var express = require('express');
var app = express();
var cool = require('cool-ascii-faces');

app.set('port', (process.env.PORT || 5000));

app.get('/', function(request, response) {
    var result = ''
    var times = process.env.TIMES || 5
    for (i=0; i < times; i++)
        result += cool();
    response.send(result);
});

app.listen(app.get('port'), function() {
    console.log("Node app is running on port: " + app.get('port'))
})

我已经设置了一个.env文件供Foreman使用(在本地测试时),其中包含以下内容:     TIMES=9

如果您想查看输出,请查看here

TL; DR:如何在Node中使用换行符?

2 个答案:

答案 0 :(得分:0)

默认情况下,浏览器假定Web服务器发送HTML HTML忽略换行符。

如果您没有发送HTML,则需要通过设置其他类型来指定:

response.header("Content-Type", "text/plain");

要实际发送换行符,只需将'\n'连接到您的字符串。

答案 1 :(得分:0)

我访问了相关网站并进行了查看 - &gt;资源。没有像HTML,BODY等那样的标记。我假设浏览器会将输出解释为HTML。这应该有效,因为我们使用HTML标签和一对PRE标签来表示如果我们看到硬回车('\ n'),那么浏览器应该显示它。

app.get('/', function(request, response) {
  var result = '<html><pre>';
  var times = process.env.TIMES || 5
  for (i=0; i < times; i++)
    result += cool() + '\n';
  result += '</pre></html>';
  response.send(result);
});