我是 Angular JS 和 node.js/express 框架的新手。我正在开发一个使用 angular 和 express 框架的小型应用程序。我有几个端点运行的快速应用程序。一个用于 POST 操作,一个用于 GET 操作。我正在使用 node-mysql 模块来存储和从 mysql 数据库中获取。
这个应用程序正在我的笔记本电脑上运行。
angular.js 客户端:
控制器
function ItemController($scope, storageService) {
$scope.savedItems = storageService.savedItems();
alert($scope.savedItems);
}
服务
myApp.service('storageService', function($resource) {
var Item = $resource('http://localhost\\:3000/item/:id',
{
id:'@id',
},
{
query: {
method: 'GET',
isArray: true
}
);
this.savedItems = function() {
Item.query(function(data){
//alert(data);
return data;
});
}
带有 mysql 数据库的 Express 服务器:
...
app.get('/item', item.list);
...
items.js
---------
exports.list = function(req, res) {
var sql = 'select * from item';
connect: function() {
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'admin',
database : 'test'
});
return connection;
},
query: function(sql) {
var connection = this.connect();
return connection.query(sql, function(err, results) {
if (err) throw err;
return results;
});
},
res.send(results);
};
当我从服务器发送静态项目数组(json)时, $scope.savedItems() 正在被填充。
但是当我访问数据库中的项目时,即使服务器正在返回项目,客户端中的 $scope.savedItems 也是空的。直接使用 $http 也无济于事。
我从 angular.js 文档中阅读了 $resource 和 $http 的异步性质,但我仍然遗漏了什么或做错了什么。
在此先感谢并感谢您的帮助。