【问题标题】:How to append new line character in node.js?如何在 node.js 中添加换行符?
【发布时间】:2012-05-13 13:01:04
【问题描述】:

我是 node.js 的新手,我正在尝试编写一个程序来接收 http 请求并通过套接字转发内容。在套接字的另一端是一个分页系统,它需要以换行符终止的消息。到目前为止,它工作正常,除了发送了一条带有内容的额外消息:undefined

当我将寻呼消息的内容打印到客户端的浏览器时,似乎没有换行。我这样做对吗?

sys = require("sys"),
http = require("http"),
url = require("url"),
path = require("path"),
net = require("net");

socket = new net.Socket();
socket.connect(4000, '192.168.0.105');

var httpServer = http.createServer(function(request, response) {
    var uri = String(url.parse(request.url).query);
    var message = uri.split("=");
    var page = 'FPG,101,0,3!A' + message[0] + '\n';
    response.writeHead(200, {"Content-Type":"text/html"});
    response.write('sending message: ' + page + " to pager");
    response.end();
    socket.write(page);
}).listen(8080);

sys.puts("Server running at http://localhost:8080/");

编辑:我进一步缩小了范围。事实证明,如果我这样做:

var page = 'FPG,101,0,3!A' + 'hello' + '\n';

它工作正常。所以uri.split("=") 的输出一定不是我所期待的。

【问题讨论】:

  • 如果您使用Wireshark 查看流量,您是否看到尾随的换行符?您是否需要发送\r\n 而不仅仅是\n
  • 不,我只需发送 \n 就可以在另一个应用程序中使用它,所以我知道这就是我所需要的。

标签: javascript sockets node.js pager


【解决方案1】:

我确定新行就在那里,但是当您将Content-Type 发送为text/html 时,您不会看到它。在 HTML 中,\n 只是其他空格,因此被视为。请改用text/plain

【讨论】:

  • 哦。好的,现在我在客户端的浏览器上看到了它。一定还有其他问题。谢谢。
  • @ddor254 CSS 控制如何解释空白。您有具体问题吗?
  • 是的,我的意思是在 HTML 规范中,CSS 控制 html 的表示的地方是什么?为什么 css 仅在 content-type in text/html 时设置为解释器?
【解决方案2】:

由于内容类型是'text/html',我们可以愉快地使用break语句。就像这样

res.write('hello'+'<br/>');
 res.write('nice to meet you');

您可以在节点中尝试此代码:

var http = require('http');

http.createServer(function (req, res) {

res.writeHead(200, { 'Content-Type': 'text/html' });
res.write('hello,this is saikiran'+'<br/>');
res.end('nice to meet you');

}).listen(process.env.PORT || 8080);
console.log('server running on port 8080');

【讨论】:

    【解决方案3】:

    根据 text/plain 的内容类型,您还可以使用 \r 发送返回输入 到客户端的浏览器

    【讨论】:

      【解决方案4】:

      我发现了问题所在。出于某种原因,浏览器在我的请求之后立即向该页面发送了一个额外的请求。我只是过滤了具有某种格式的请求并修复了它。

      【讨论】:

      • 我不这么认为。问题的解决方案就是@Brad 上面提到的。
      【解决方案5】:

      考虑使用\\n 而不是\n 换行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-01
        • 2012-05-07
        • 1970-01-01
        • 2016-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多