2017-06-07 5 views
0

私はNode.js Webサーバーを持っており、mysqlサーバーからデータを取得しています。取得したデータをHTMLに表示する必要があります。サードパーティのnode.js/JavaScriptフレームワークは使用できません。私は私の心の中で2つのアイデアを持っているが、それを行うには正しい方法だ何を知らないNode.js(フレームワークなし)でDBからWebサイトにデータを表示

(質問これをいけないしてください)...

  1. は、クライアントにJSONを介してデータを送信し、JavaScriptでそれを処理します。

  2. HTTP応答を送信する前に、HTMLを解析してデータを挿入してください。 (フレームワークを使用せずに複雑に...どのように?)

助けてください。ありがとうございました。

+0

は、あなたがあなた自身の最初で、それを試してみましたか?フレームワーク経由で可能なら、間違いなく純粋なコードを使用することが可能です – FieryCat

+0

はい、私はいくつかのことを試しました(xhtmlrequest)成功なし...私はちょうど正しい方向にヒントが必要です。 –

+0

ここであなたの質問を検索してください。最初の部分についてはhttps://stackoverflow.com/questions/6011984/basic-ajax-send-receive-with-node-jsのように – FieryCat

答えて

0

はこのようにそれを解決:

app.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); 
    } 
} 

index.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> 
0

これは何か?

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}/`); 
}); 
関連する問題