无法将角度前端连接到节点后端

时间:2015-07-15 14:33:03

标签: angularjs node.js socket.io

我正在开发游戏应用。我已经开始通过FB授权,现在我卡在连接前端角度与后端节点。 我的文件夹包含2个子文件夹,它们之间没有任何连接或依赖关系:客户端服务器

客户端包含基于角度生成器的scaffolded yeoman应用程序,以便使用 grunt serve 触发我的前端。我在这里使用btford的angular-socket-io。

服务器只包含基本服务器,当有人通过socket.io连接时,它允许连接和登录到控制台。

我的问题在于客户端文件夹,前端部分,其中:

angular.module('battleshipsApp')
    .factory('socket', function (socketFactory) {
        var myIoSocket = io.connect('http://localhost:5432');
        var mySocket = socketFactory({
            ioSocket: myIoSocket
        });
       return mySocket;
    });

不起作用。

我想我把我需要的东西联系起来了:

src="bower_components/angular-socket-io/socket.js"
<!-- endbower -->
<!-- endbuild -->
src="bower_components/angular-socket-io/mock/socket-io.js"

这是我的简单服务器:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.sockets.on('connection', function(socket){
    var logIn = new Date();
    console.log(logIn + ' user connected')

    socket.on('disconnect', function() {
    var logOut = new Date();
        console.log(logOut + ' bye bye')
    })
});

http.listen(5432, function(){
  console.log('listening on localhost:5432');
});

我无法弄清楚为什么这两个无法连接。 我找不到任何适合我在谷歌问题的答案。 我现在正在两个终端上看,一个是 grunt serve ,一个是 nodemon server.js ,没有错误,没有连接。 此外,前端端的chrome工具控制台上没有错误。

有任何帮助吗?或者也许这个应用程序的方法与我的结构不好?

1 个答案:

答案 0 :(得分:0)

我猜您需要添加到您的服务器:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});