【问题标题】:How to get data with my angular.js file from node.js restful api in localhost如何使用我的 angular.js 文件从 localhost 中的 node.js restful api 获取数据
【发布时间】:2016-11-14 16:06:14
【问题描述】:

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

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
        }
    ]
}

【问题讨论】:

    标签: angularjs node.js ionic-framework server


    【解决方案1】:

    我认为您在 main.js 中的响应使用了错误的结尾。

    response.end() 只是结束响应过程,它不发送任何数据。

    你想使用 response.send(data)

    在这里查看similar question

    【讨论】:

    • 好的,我去试试。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多