Node.js + Express:如何正确显示GET请求头
解决回显服务器中换行符不生效的问题
嘿,我太懂你这种“明明是小问题却卡壳”的感觉了!你的代码逻辑没毛病,问题出在HTML对换行符的处理方式上——浏览器默认会把文本里的\n当成普通空格,不会渲染成换行。下面给你几个简单的解决方案:
方案1:把换行符替换成HTML换行标签<br>
直接在后端拼接字符串时,把\n换成<br>,这样HTML会识别并渲染成换行。注意模板渲染时要使用未转义输出(避免<br>被转义成纯文本):
修改后端代码:
app.get('/', function(req,res){ var s = ''; for(var name in req.headers) { s += name + ': ' + req.headers[name] + '<br>'; } res.render('home', {output: s}) });
然后在你的模板(比如EJS)里,用<%- output %>代替<%= output %>:
<!-- home模板 --> <div><%- output %></div>
方案2:用<pre>标签包裹输出内容
<pre>标签会保留文本里的所有格式(包括换行、空格),不需要修改后端代码,只需要在模板里调整:
<!-- home模板 --> <pre><%= output %></pre>
这个方案优点是简单直接,能完全保留你拼接的原始格式,适合需要展示纯文本样式的场景。
方案3:用CSS样式实现换行
如果不想用<pre>自带的等宽字体,也可以给容器添加white-space: pre-wrap样式,这样既保留换行,又能自动适配容器宽度:
<!-- home模板 --> <div style="white-space: pre-wrap;"><%= output %></div>
这个方案最灵活,能自定义文本的字体、间距等样式,同时保留换行效果。
选哪个方案看你的需求~ 试试应该就能解决问题啦!
内容的提问来源于stack exchange,提问作者shinryu333
相关产品推荐
相关产品推荐

