NodeJS express中的res.write()不适用于图像标记

db2dz4w8  于 2022-12-12  发布在  Node.js
关注(0)|答案(5)|浏览(138)

我写了这段代码

res.write("<img src='"+"http://openweathermap.org/img/wn/10d@2x.png" + "'>");

我希望它能在这个 url 中显示图像,但它却在屏幕上显示了引号下的完整代码。我该如何解决这个问题?

okxuctiv

okxuctiv1#

对我非常有效的解决方案:

*设置响应头 * 内容类型 (在res.write()之前 <img...>

您可以使用res.set()res.setHeader(),如下所示:

res.set("Content-Type", "text/html") 

             OR   

res.setHeader("Content-Type", "text/html")

(both方法的目的是一样的:设置内容类型)
确保发送响应时使用res.send()
这应该能帮你向前看!

cwtwac6a

cwtwac6a2#

您可以使用res.send()发送纯html:

res.set('Content-Type', 'text/html');
res.send(new Buffer("<img src='" + "http://openweathermap.org/img/wn/10d@2x.png" + "'>"));
wnvonmuf

wnvonmuf3#

res.write()用于发送响应内容(可能是网页);因此在编写完所需内容之后,应该调用res.end()或直接使用res.send()。
要显示图像文件,您应该提供静态文件:

app.use(express.static('the/path/to/your/image/file'));

app是您在start时创建的express()的对象。

ejk8hzay

ejk8hzay4#

我需要一些类似的东西,并发现这个工程,使图标动态与预测代码-享受。

const icon = weatherData.weather[0].icon
const imageUrl = "http://openweathermap.org/img/wn/" + icon + ".png"

res.write("<p>The temp in Brighton, UK is " + temp + " degrees</p>");
res.write("And the forcast is " + description + "<img src='" + imageUrl + "'>");
res.send();
798qvoo8

798qvoo85#

const weatherData = JSON.parse(data);

const icon = weatherData.weather[0].icon

const imageURL = "http://openweathermap.org/img/wn/" + icon + "@2x.png"

res.write("<img src= " + imageURL + "'>");

res.send();

相关问题