javascript - 使用 AngularJS 和 NodeJS 从 MySQL 中检索数据

标签 javascript mysql angularjs node.js electron

首先,也许我需要澄清一下,我是这类技术的新手。我正在从 PHP 迁移到 JavaScript,我以前从未做过这种工作。我正在使用 Electron + AngularJS 制作桌面应用程序。我有一个简单的表,我需要在其中显示获取的 MySQL 表数据。查看信息,我找到了一种使用 NodeJS 来完成此操作的简单方法,但是我在将检索到的数据存储到 $scope 之后遇到问题,使用 ng-repeat 指令显示。这是我的代码(简化):

app.controller('registrosController', function($scope, $http) {
    var mysql = require('mysql');
    var connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: null,
        database: 'dniscan'
    })
    connection.connect((err) => {
        if(err){
            return console.log(err.stack);
        }
    })
    $queryString = 'SELECT * FROM registros ORDER BY escaneado DESC';
    connection.query($queryString, (err, data) => {
        if(err) {
            return console.log("Ocurrió un error durante la consulta", err)
        }
        console.log(data)       //The data shows correctly in the console.
        $scope.registros = data //This not working. It returns undefined.
    });
    connection.end();
});

最佳答案

似乎您混淆了客户端和服务器,所以澄清一下,在服务器中您从数据库中获取数据。在客户端中,您将数据放在范围内。然后在 HTML 中,将范围内的数据放入 View 中。

这是一个例子:

Server - NodeJs

app.get('getData', function (req, res) {
    var mysql = require('mysql');
    var connection = mysql.createConnection({ ... });
    connection.connect((err, connection) => {
        if(err) { 
            res.send({ err }) 
        } else {
            var queryString = 'SELECT * FROM ...';

            connection.query(queryString, (err, data) => {
                if(err) { 
                    res.send({ err }) 
                } else {
                    res.send({ data });
                }
            });
        }
    });
    connection.end();
});

Client - AngularJs

app.controller('registrosController', function($scope, $http) {
    $http.get('/getData').then(function(data) {
        $scope.registros = data;
    });
});

Client - Html

<div ng-repeat="registro in registros">
    ...
</div>

附言在 javascript 中,您不是通过附加 $ 来定义变量,而是通过单词 var 来定义变量。

关于javascript - 使用 AngularJS 和 NodeJS 从 MySQL 中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44707391/

相关文章:

javascript - 无法更改包含无序列表的 div 的背景

javascript - 全日历中的 If Else 语句

mysql - 程序在执行准备好的语句时静默终止

javascript - AngularJS 指令中的单元测试私有(private)函数

javascript - 调整元素的 InView 计算

mysql - MsSql 计划触发的事件

mysql - 如何从 MySQL 数据库中删除两个链接的行?

javascript - Angular : Pass additional parameters to chained promises

angularjs - Restangular中的.all()和.one()有什么区别?

javascript - 带功能的 Angular 扩展模块(最佳实践)