[英]Displaying Data on Website from Node.js (Without Frameworks)
我有一个 Node.js 网络服务器,我正在从 mysql 服务器获取数据。 获取的数据现在需要以 HTML 的形式显示在前端。 我不允许使用任何 3rd Party node.js/JavaScript 框架。
我是 Web 服务器开发的新手,我很难弄清楚如何将后端数据“传输”到前端。
我有两个想法,但不知道解决这个问题的正确方法是什么......
通过 JSON 将数据发送到客户端并使用 JavaScript 进行处理。 (可能?如果是,如何?)
在发送 HTTP 响应之前,解析 HTML 并插入数据。 (不使用框架很复杂,而且成本太高?)
解决这个问题的正确方法是什么?
任何帮助将不胜感激。 谢谢。
是这样解决的:
应用程序.js
var http = require('http');
var url = require('url');
var server = http.createServer(function(req, res) {
var q = url.parse(req.url, true);
if(q.filename == "command"){
res.writeHead(200, {'Content-Type':'application/json'});
return res.end(some_json);
}
}
索引.html
<script>
xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST","http://localhost:8000/command", true);
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
//Process Data
var jsonObj = JSON.parse(xmlhttp.responseText);
document.getElementById("test").innerHTML = jsonObj;
}
}
xmlhttp.send();
</script>
<div id="test"></div>
像这样的东西?
const http = require('http');
const util = require('util');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
mysql.query("select * from table").then(rows => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/html');
res.end(`<html><head></head><body>${util.inspect(rows)}</body></html>`);
})
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.