【问题标题】:Sending a newline in a response using Express and node.js使用 Express 和 node.js 在响应中发送换行符
【发布时间】:2020-02-08 12:16:01
【问题描述】:

我正在尝试使用 Express 发送带有换行符的字符串。

const express = require('express');
const app = express();

persons = [//...];

app.get('/info', (req,res) => {
    res.send(`Phonebook has info for ${persons.length} people.
    ${Date()}`);
});

我在网上看到,从 ES6 开始,反引号可用于构造多行,但它似乎不起作用。

我想要的输出是:

Phonebook has info for 4 people.

Thu Oct 10 2019 18:54:01 GMT-0700 (Pacific Daylight Time)

我还尝试了以下方法:

app.get('/info', (req,res) => {
    res.send(`Phonebook has info for ${persons.length} people.\n${Date()}`);
});

我在网上看到你也可以只使用 '\n' 但这也行不通。

我做错了什么?我一直在遵循我在网上找到的建议,但我无法让新行出现。

【问题讨论】:

  • 将 {Date()} 替换为 ${Date()}
  • 抱歉,我的意思是输入 ${Date}。那是一个错字,没有留下$。但这并没有解决问题。
  • 这个有效载荷是如何使用的?还是在哪里?如果它是 HTML,那么\n 将不起作用,您需要将它们转换为<br/> 标签。除非这是包装在 <pre></pre> 标签中的预格式化文本
  • 添加
    有效。我的代码现在是 res.send(Phonebook 有 ${persons.length} 人的信息` + <br/> +` ${Date()});。我是 node.js 和 express 的新手,所以我没有意识到 res.send() 应该将 HTML 发送到我的浏览器,现在你已经指出了这一点。谢谢你。什么情况下 res.send() 不会发送 HTML?
  • 例如,当您从命令行应用程序调用端点时。

标签: node.js express response newline line-breaks


【解决方案1】:

作为替代方案,您可以使用 HTML 元素将两个句子分开,例如

app.get('/info', (req,res) => {
    res.send(`<p>Phonebook has info for ${persons.length} people.</p><p>${new Date()}</p>`);
});

这应该会给你这样的输出:

电话簿有 4 个人的信息。
2021 年 1 月 9 日星期六 18:34:35 GMT+0000(格林威治标准时间)

【讨论】:

    【解决方案2】:

    解决方案是使用 &lt;br/&gt; 标记而不是 \n,因为我的 res.send() 的目的是将 HTML 发送到我的本地浏览器。感谢@Jason。

    【讨论】:

      猜你喜欢
      • 2014-02-10
      • 2016-07-07
      • 1970-01-01
      • 2020-06-09
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多