繁体   English   中英

从 Node.js 在网站上显示数据(无框架)

[英]Displaying Data on Website from Node.js (Without Frameworks)

我有一个 Node.js 网络服务器,我正在从 mysql 服务器获取数据。 获取的数据现在需要以 HTML 的形式显示在前端。 我不允许使用任何 3rd Party node.js/JavaScript 框架。

我是 Web 服务器开发的新手,我很难弄清楚如何将后端数据“传输”到前端。

我有两个想法,但不知道解决这个问题的正确方法是什么......

  1. 通过 JSON 将数据发送到客户端并使用 JavaScript 进行处理。 (可能?如果是,如何?)

  2. 在发送 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM