You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:14:44