http.get问题angular + nodejs

时间:2015-02-09 23:59:33

标签: javascript angularjs node.js http

当我使用此代码时,工作,我得到温度响应" ok":

controller.js

    var myApp = angular.module('myApp',[]);

myApp.controller('AppController',['$scope','$http',function($scope,$http){

    $http.get('/').
        success(function (response) {
        console.log("ok");
    });

}]);

server.js

var express = require('express');
var app = express();

app.use(express.static(__dirname + "/public"));

app.get('/', function (req, res){

    var person1 = {
        name: 'Tim',
        email:'tim@gmail.com',
        number:'32232233'
    };

    var person2 = {
        name :'Dani',
        email:'Dani@gmail.com',
        number:'22222222'
    };

    var contactList = [person1,person2];

    res.json = contactList;
    console.log("send work");
});

app.listen(3000);
console.log("Server running on port 3000");

但是,当我将$http.get('/')更改为$http.get('/list')app.get('/', function (req, res)更改为app.get('/list', function (req, res)时无效。

获取时间列表'永远保持等待,当我停止节点服务器时,我得到" GET http://localhost:3000/list net :: ERR_EMPTY_RESPONSE"。

1 个答案:

答案 0 :(得分:2)

您实际上并未调用res.json()方法。

确保您实际上是在调用该方法,而不是将其分配给联系人列表:

res.json(contactList);

VS

res.json = contactList

在上下文中:

app.get('/list', function (req, res){

    var person1 = {
        name: 'Tim',
        email:'tim@gmail.com',
        number:'32232233'
    };

    var person2 = {
        name :'Dani',
        email:'Dani@gmail.com',
        number:'22222222'
    };

    var contactList = [person1,person2];

    res.json(contactList);
    console.log("send work");
});

您可能会对' /'做出回应。是因为您的应用程序托管在' /',因此您将获得回复。