如何在node.js中添加换行符?

Dav*_*vid 10 javascript sockets pager node.js

我是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/");
Run Code Online (Sandbox Code Playgroud)

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

var page = 'FPG,101,0,3!A' + 'hello' + '\n';
Run Code Online (Sandbox Code Playgroud)

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

Bra*_*rad 12

我敢肯定,新的生产线是存在的,但你不会看到它,当你把你的Content-Type作为text/html.在HTML中,\n只是其他空格,并被视为这样.请text/plain改用.


小智 8

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

res.write('hello'+'<br/>');
 res.write('nice to meet you');
Run Code Online (Sandbox Code Playgroud)

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

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');
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid -3

我明白问题出在哪里了。由于某种原因,浏览器在我发出请求后立即向页面发送了额外的请求。我只是过滤了具有特定格式的请求并修复了它。

  • 我不这么认为。该问题的解决方案就是@Brad 上面提到的。 (3认同)