Node.js 中是否可以返回 HTML(例如<div>Test</div>
)作为对客户端的响应?
sendFile()
我在 Express on method()中看到了该选项。
Node中有类似的东西吗?
我找到了这个解决方案:
var myHtmlData;
fs.readFile('./index.html', (err, data) => {
if(err){
throw err;
} else {
myHtmlData = data
}
})
// and after use it
response.write(myHtmlData)
Run Code Online (Sandbox Code Playgroud)
但我想知道是否可以使用类似于sendFile()
直接编写 html 的方法来完成此操作<div>Test</div>
,而无需从另一个文件中读取它。
小智 5
当然。这很简单。以下代码将响应以 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);
Run Code Online (Sandbox Code Playgroud)
如果您想提供 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');
Run Code Online (Sandbox Code Playgroud)
不要忘记如上所述设置Content-Type,因为它是客户端区分响应类型的强制部分。
归档时间: |
|
查看次数: |
11760 次 |
最近记录: |