2014-03-29 2 views
0

Angular.js와 Socket.io를 이해하려고합니다. 하지만 내 node.js/socket.io가 angular.js 및 controller.js로 라우팅되는 실제 웹 서버로 작동하지 않는 것 같습니다. 그게 "처리기"의 일이 될까요? 내 처리기는 다음과 같이 표시되며 page.html 만 반환합니다. /lib/angular.js 및 /js/controller.js로도 경로를 설정할 수 있습니까? 나는 기술을 얻지 못해서 아주 어리 석다.각도 + 소켓 .io 처리기

<html ng-app="MyTestApp">... 
    <script src="./lib/angular/angular.js"></script> 
    <script type="text/javascript" src="./js/controllers.js"></script>... 
<body ng-controller="userController"> 
    <table> 
     <thead> 
      <tr><th colspan="4">All online users</th></tr> 
     </thead> 
     <tbody> 
      <tr ng-repeat="user in UserList"> 
       <td>{{$index + 1}}</td> 
        <td> 
        <img src="img/flags/{{nationality}}.png" /> 
        {{user.Driver.givenName}} 
       </td> 
      </tr> 
     </tbody> 
     </table> 

그리고 내 controller.js :

var handler = function(req, res) { 
fs.readFile('page.html', function(err, data) { 
    if (err) 
     throw err; 
    res.writeHead(200); 
    res.end(data); 
}); 

내 page.html은 다음과 같습니다

angular.module('MyTestApp', [ 
    'MyTestApp.controllers' 
]); 

angular.module('MyTestApp.controllers', []). 
    controller('userController', function($scope) { 
$scope.UserList = [ 
    { Driver: { 
     givenName: 'Sebastian' 
     }, 
    nationality: "German" 
    }, 
    { Driver: { 
     givenName: 'Fernando' 
     }, 
    nationality: "Spanish", 
    } 
];}); 

그래서 그 단순한 테스트를하지만 내 page.html에서 내가 얻을 해달라고 올바른 데이터와 나는 angular.js가 node.js에 의해로드되지 않는다고 생각했습니다.

{{$index + 1}}...{{user.Driver.givenName}} 

고마워요.

답변

1

(http://expressjs.com)을 사용하여 page.html과 JS 애셋을 제공해야합니다. 5 줄과 같은 것을 가져 가야합니다.

0

존이 완전히 옳았습니다. 나는 익스프레스로 작업하게했다. 이것은 코드이다 :

var express = require('express'); 
var app = express(); 
app.configure(function() { 
    app.use(express.static(__dirname+'/public')); 
}); 
var server = require('http').createServer(app).listen(1337); 
var io = require('socket.io').listen(server);