gpt4 book ai didi

Node.js 将 HTML 作为响应发送给客户端

转载 作者:行者123 更新时间:2023-12-03 08:38:56 25 4
gpt4 key购买 nike

Node.js 是否可以返回 HTML(例如 <div>Test</div> )作为对客户端的响应?

我在 sendFile() 的 Express 中看到了该选项方法()。

Node 中有类似的东西吗?

我找到了这个解决方案:

var myHtmlData;
fs.readFile('./index.html', (err, data) => {
if(err){
throw err;
} else {
myHtmlData = data
}
})
// and after use it
response.write(myHtmlData)

但我想知道是否可以使用类似于sendFile()的方法来做到这一点直接这样写html <div>Test</div>无需从另一个文件中读取它。

最佳答案

当然。这很简单。以下代码将响应以 HTML 形式返回给客户端。

var http = require('http');

http.createServer(function(req, res){
if(req.url === "/"){
res.writeHead(200, { 'Content-Type':'text/html'});
res.end("<div><p>Test<p></div>");
}
}).listen(3000);

如果您想提供 HTML 或 JSON 文件作为响应,您可以执行以下代码。

var http = require('http');
var fs = require('fs');

http.createServer(function(req, res){

if(req.url === '/I_want_json'){

res.writeHead(200, { 'Content-Type':'application/json'});

var obj = {
firstName: "Jane",
lastName: "Doe",
};

res.end(JSON.stringify(obj));
}
else if (req.url === '/I_want_html'){
res.writeHead(200, { 'Content-Type':'text/html'});
html = fs.readFileSync('./index.html');
res.end(html);
}
else{
res.writeHead(404);
res.end();
}
}).listen(3000, '127.0.0.1');

不要忘记设置前面提到的Content-Type,因为它是客户端区分响应类型的强制部分。

关于Node.js 将 HTML 作为响应发送给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63161945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com