角+套接字.输入输出处理程序

Angular+Socket.io Handler

本文关键字:处理 程序 输入输出 套接字      更新时间:2023-09-26

我正在尝试理解Angular.js和Socket.io。但似乎我的node.js/socket。IO不能像一个真正的web服务器一样路由到angular.js和controller.js。这不应该是"处理器"的任务吗?我的处理程序看起来像这样,并且只返回page.html。我怎么能使它也路由到/lib/angular.js和/js/controller.js ?我觉得自己很笨,因为我不懂技术。

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

my page.html看起来像这样:

<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:

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

所以这只是一个简单的测试,但在我的页面。html我没有得到正确的数据,我认为,angular.js不是由node.js加载?:

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

谢谢,伙计们。

你应该使用(http://expressjs.com)并使用它来提供page.html和你的JS资源。应该是5行。

约翰完全正确。我让它与express一起工作,这是代码:

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);