首先,也许我需要澄清一下,我是这类技术的新手。我正在从 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/