12

私は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("=")私が期待しているものであってはなりません。

4

5 に答える 5

14

新しい行はそこにあると確信していますが、Content-Typeとして送信すると表示されませんtext/html。HTMLでは、\nは他の空白であり、そのように扱われます。text/plain代わりに使用してください。

于 2012-05-04T00:21:31.213 に答える
10

コンテンツタイプは「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');
于 2013-12-11T13:41:43.000 に答える
0

テキスト/プレーンのコンテンツタイプごとに、\rを使用してクライアントのブラウザにリターン入力を送信することもできます

于 2017-07-29T10:15:23.377 に答える
-3

私は問題が何であるかを理解しました。何らかの理由で、ブラウザは私のリクエストの直後にページに追加のリクエストを送信していました。特定の形式のリクエストをフィルタリングしたところ、修正されました。

于 2012-05-04T22:51:08.557 に答える
-3

改行\\nの代わりに使用することを検討してください。\n

于 2012-07-09T10:34:46.967 に答える