angularjs - 如何从本地主机中的node.js Restful api 使用我的 angular.js 文件获取数据

标签 angularjs node.js ionic-framework server

我为rest api创建了main.js。当我从vericek.js向本地服务器发送请求时,响应没有返回,但本地服务器在终端中显示正在发送数据。 问题是什么。 谢谢

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 ..");
});

用户.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(data)

请参阅此处 similar question

关于angularjs - 如何从本地主机中的node.js Restful api 使用我的 angular.js 文件获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38328464/

相关文章:

javascript - AngularJS : How to bind an event to a dynamically generated html with ng-bind-html

javascript - 如何使用过滤器从 ng-repeat 中将数组中的对象分组?

node.js - JS 闭包、Redis、循环、Async::空数组

node.js - 为什么当我运行 Angular/React 项目时它无法在我的本地主机上运行?

ios - 在 iPhone 设备上的 ionic 应用程序中播放视频时没有声音

node.js - Grunt 服务器在 Nitrous.io 中无法工作

javascript - 即使我在数据库上设置了用户和密码,也无法登录脚本

node.js - 构建时发出 grunt 警告 (grunt-contrib-compass)

javascript - 如何使用js增加onclick事件的积分?

android - 添加外部 Jar 库以构建 Cordova 插件( ionic 框架)