带有mysql的NodeJS rest api无法迭代输出格式
Posted
技术标签:
【中文标题】带有mysql的NodeJS rest api无法迭代输出格式【英文标题】:NodeJS rest api with mysql cannot iterate on the output format 【发布时间】:2016-07-12 14:52:02 【问题描述】:伙计们,我遵循了一个关于如何使用 node+express+mysql 实现 rest api 的教程,这是我的代码 REST.js 文件中的一条路线:
router.get("/companies",function(req,res)
var query = "SELECT * FROM ??";
var table = ["company"];
query = mysql.format(query,table);
connection.query(query,function(err,rows)
if(err)
res.json("Error" : true);
else
res.json("Companies" : rows);
);
);
这就是我使用 angular 来称呼它们的方式:
sampleApp.controller('InstallController', function($scope, $http)
$http.get('http://localhost:3000/api/companies').
success(function (data)
$scope.clients = data;
);
和html
<option ng-repeat="client in clients">client</option>
这是我得到的回应:
"Companies": [
"id": 1,
"name": "GOLF"
,
"id": 2,
"name": "RENAULT"
,
"id": 3,
"name": "AUDI"
,
"id": 4,
"name": "MAZDA"
]
我的目标是迭代结果以填充带有名称的选择标签。请多多包涵,我要开始了。谢谢你:)
【问题讨论】:
【参考方案1】:您应该在下面使用,但当您选择任何值时,您只能在 selectedClient
中包含 id
值。
<select ng-model="selectedClient">
<option value="client.id" ng-repeat="client in clients.Companies">
client.name
</option>
</select>
更好的选择是在select
下拉列表中使用ng-options
指令,因此您可以在此处选择对象而不是原始值。就像您选择GOLF
选项时将拥有"id": 1, "name": "GOLF"
对象一样,是否作为带有ng-repeat
的重复选项对选择原始类型值有限制。
<select ng-model="selectedClient" ng-options="client.name for client in clients.Companies"></select>
【讨论】:
谢谢谢谢谢谢!但我认为你的意思是 clients.Companies 而不是 clients.Clients 正确。 Ng-repeat 应该是clients.Companies
。我昨天遇到了类似的问题。【参考方案2】:
看起来你已经正确地连接在一起了,你只需要更改 $scope.clients 的分配。
$scope.clients = data.Companies;
然后在你的 HTML 中
<option value="client.id" ng-repeat="client in clients">
client.name
</option>
【讨论】:
以上是关于带有mysql的NodeJS rest api无法迭代输出格式的主要内容,如果未能解决你的问题,请参考以下文章
在实时环境中部署 NodeJS 和 MySQL REST API [关闭]
Nodejs:如何从 REST API 下载 pdf 文件?