如何从连接到Node.js服务器的MySQL数据库发送数据,以便我可以将它用于客户端JavaScript?

时间:2018-03-16 19:11:35

标签: javascript mysql node.js

作为序言,我对NodeJ和MySQL完全陌生。

我有一个在Node上运行的网站,像这样表达

trans()

它已成功连接到服务器,并可以在命令提示符下打印出服务器值。

有没有办法将这些数据发送到我的网站,以便我可以使用客户端脚本的值?例如,我想在我的var express = require('express'); var app = express(); var path = require("path"); var mysql = require("mysql"); app.use(express.static('Script')); var con = mysql.createConnection({ host: "localhost", user: "root", password: "password", database: "blocks" }); con.connect(function(err){ if(err) throw err; console.log("connected!"); con.query("SELECT * FROM blockchain", function(err, result, fields){ if(err) throw err; console.log(result); }); }); app.get('/', function (req, res) { res.sendFile(path.join(__dirname + '/index.html')); }); app.listen(8080); 文件中创建一个新的<p>元素来表示数据库中的每个条目,从而改变我网站显示的信息。

因此,如果数据库为空,我的网站看起来是空的。如果数据库有三个条目,我的网站将有3个index.html元素,对应于三个条目的输入。

2 个答案:

答案 0 :(得分:-1)

轻松自如。首先我们打开数据库连接:

 con.connect(function(err){
   if(err) throw err;
   console.log("connected!");

然后,如果建立了连接,我们就可以开始回复请求了:

    app.get("/", (req, res) => {

现在,当请求进入时,我们从db获取最新数据:

      con.query("SELECT * FROM blockchain", function(err, result, fields){
         if(err) return res.end("sth went wrong :(");
         res.end(result);
     });
   });
 });

现在你只需要将数据传输到html中,因为我建议使用模板引擎。

答案 1 :(得分:-1)

从数据库查询数据时,它是异步操作。换句话说,拥有所有数据需要一些时间。 所以在你的情况下,最好使用一个承诺:

#pragma once

#include "vec3.h"
#include "vec4.h"
#include "maths_func.h"

namespace sparky { namespace maths {

   struct mat4
   {
        union
        {
            float elements[4 * 4];
            vec4 columns[4];
        };

        mat4();
        mat4(float diagonal);

        static mat4 identity();
        mat4& multiply(const mat4& other);

        friend mat4 operator*(mat4 left, const mat4& right);
        mat4& operator*=(const mat4& other);

        mat4& Invert();

        static mat4 orthographic(float left, float right, float bottom, float top, float near, float far);
        static mat4 perspective(float fov, float aspectRatio, float near, float far);

        static mat4 translation(const vec3& translation);
        static mat4 rotation(float angle, const vec3& axis);
        static mat4 scale(const vec3& scale);
    };
} }

在您的查询完成后执行.then之后的功能。现在,您可以使用for循环对查询进行排序。

mysql-promise:https://www.npmjs.com/package/promise-mysql

HTML DOM写:https://www.w3schools.com/jsref/met_doc_write.asp