如何从本地主机中的node.js restful api获取angular.js文件的数据
我为rest api创build了main.js。当我从vericek.js发送请求到本地服务器时,响应没有回来,但localserver显示在terminal发送数据。 问题是什么。 谢谢
的index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title></title> <link href="lib/ionic/css/ionic.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above <link href="css/ionic.app.css" rel="stylesheet"> --> <!-- ionic/angularjs js --> <script src="lib/ionic/js/ionic.bundle.js"></script> <!-- cordova script (this will be a 404 during development) --> <script src="cordova.js"></script> <!-- your app's js --> <script src="js/vericek.js"></script> </head> <body> <div ng-app="app" ng-controller="ctrl"> <button ng-click="getData()">Get Data</button> <ul> <li ng-repeat="d in data">{{d.id}}</li> </ul> </div> </body> </html>
vericek.js
var app=angular.module("app",[]); app.controller("ctrl",function($scope, $http) { $scope.getData=function() { $http.get("http://127.0.0.1:1305/listuser").success(function(response){ $scope.veriler=response.userInfo; }); } });
main.js / rest api
var express=require("express"); var app=express(); var host="127.0.0.1"; var port="1305"; var fs=require("fs"); app.get("/listuser",function(request,response){ fs.readFile(__dirname+"/"+"user.json","utf-8",function(error,data){ if(error){ response.writeHead(404,{"Content-Type":"text/plain"}); response.end("Page Not Found"); } else { console.log("sent data:"+data); response.writeHead(200,{"Content-Type":"text/json"}); response.end(data); } }); }); var server=app.listen(port,host,function(){ console.log("Listening port .."); });
user.json
{ "userInfo":[ { "id":"1", "username":"ali", "date":"1.1.2016", "post":"this is a post", "like":"2", "liked":false }, { "id":"2", "username":"veli", "date":"2.3.2015", "post":"Everyting nonsense", "like":"0", "liked":false } ] }
我认为你在main.js中使用了错误的结尾
response.end()只是结束响应过程,它不发送任何数据。
你想使用response.send(数据)
在这里看到一个类似的问题