我的index.js文件是

var express         = require('express');
var  app            = express();
var path            = require('path');
var router          = express.Router();
var data            = require('./data/jsonData');
var createDatabase  = require('./data/db');
var careateTable    = require('./data/createTable');
var insert          = require('./data/insert');
var bodyParser      = require('body-parser');
var select          = require('./data/select');


app.use(express.static(path.join(__dirname, 'www')));
app.use(express.static(path.join(__dirname, 'form')));
app.use(bodyParser());
app.get('/' , function (req , res) {
    res.sendFile(path.join(__dirname + '/www/index.html'));
});

app.get('/data' ,function (req , res) {
    res.json(data);
});
app.get('/form' ,function (req , res) {
    res.sendFile(path.join(__dirname + '/form/index.html'));
});
app.post('/form' ,function (req , res) {
    console.log(req.body.user);
    console.log(req.body.password);
    insert.insertModule(req.body.user , req.body.password);
    res.sendFile(path.join(__dirname + '/www/index.html'));
});
app.get('/show' , function (req , res) {
    var i ;
   select.select( function (err, results) {
       if (err == 'error') {
           console.log(err);
       } else {
           console.log(results);
           res.send(results.username);
       }
   });

});

app.listen(3000);
console.log("App is listning on port 3000");

select.js是
var mysql = require('mysql');
var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "",
    database: "NodeDataBase"
});
con.connect(function (err) {
    if (err) throw err;
    console.log("Connected!");
});

module.exports  = {
    select: function (callback) {
        var sql = "SELECT username , password FROM login ";
        con.query(sql, function (err, result , fields) {
            if (err) {
                callback("error", err)
            } else {
                callback("success", result)
            }
        });
    }
}

我想把结果对象数据显示到HTML文件中,那么我该如何做呢?请建议我。
从GET请求/显示中,它将显示从数据库中提取的所有用户数据。

最佳答案

我将尝试解释它的工作方式(考虑到您现在可以看到“http://localhost:3000/show”上的数据)。拜托,伙计们,如果我解释错误的话,请纠正我。
在这里,你的代码中的是
服务器端代码
mysql:声明与数据库的连接(这是您的数据库连接器)
node.js:声明从数据库中放入/推送/获取数据的方法(服务器端原样)
express.js:声明从数据库中放入/推送/获取数据的URL(http/https路由器)
然后,如果我们检查代码,就可以看到服务器API的声明-例如app.get('/show')
这里,您所说的是express,将使用url/show和方法GET
这是你的客户出现在现场的地方。现在,我们假设您的服务器已启动并正在运行,等待在http://localhost:3000/show上提供GET请求服务。
如果这是正确的,那么在单击链接时,您应该看到用户名,现在您需要一个HTTP客户机来连接到HTTP服务器端。
从服务器获取HTML客户机上的数据的方法是JavaScript。
然后,您将需要构建一个HTML文件,该文件还将包含一个javascript脚本(在我的示例中是用angular编写的)。
HTML(这是用jade编写的)。您可以convert it)如下所示:
客户端HTML代码
您应该创建index.html文件,并粘贴此代码

<!doctype html>
<html ng-app>
  <head>
    <title>My AngularJS App</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
  </head>
  <body>
  <div ng-controller="MyCtrl">
    <table>
      <thead>
        <tr>
          <th>
            <p>Name</p>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr ng-repeat="user in users">
          <td>
            <p>{{user}}</p>
          </td>
        </tr>
      </tbody>
    </table>
   </div>
    <script>
     var myApp = angular.module('myApp',[]);
     function MyCtrl($scope, $http) {
     //This method will call your server, with the GET method and the url /show
     $http.get("http://localhost:3000/show").then(function(success){
      if(success.data.length>0)
      {
         $scope.users=success.data;
      }
     });
     }
   </script>
  </body>
 </html>

此代码应该捕获数据并在表中为数据库中的每个名称显示一行。
希望它能有所帮助,至少能清楚地解释完整的堆栈(客户机-服务器)是如何工作的。

07-24 17:59
查看更多