0

以前は、Jade テンプレートに次のコードが含まれていました。

script(src='lib/angular/angular.js')
script(src='/socket.io/socket.io.js')
script(src='js/app.js')
script(src='js/services.js')
script(src='js/controllers.js')
script(src='js/filters.js')
script(src='js/directives.js')

socket.io を除くすべてが読み込まれます。3.x に更新した後、正しく読み込まれず、「Uncaught SyntaxError: Unexpected token < 」が表示され、chrome で検査すると次のファイルが読み込まれます。

<!DOCTYPE html><html ng-app="myApp"><head><meta charset="utf8"><base href="/"><title>Angular Socket.io IM Demo App</title><link rel="stylesheet" href="/css/app.css"></head><body><h1>Angular Socket.io IM Demo App</h1><div ng-controller="AppCtrl"><div class="col"><h3>Messages</h3><div class="overflowable"><p ng-repeat="message in messages" ng-class="{alert: message.user == &quot;chatroom&quot;}">{{message.user}}: {{message.text}}</p></div></div><div class="col"><h3>Users</h3><div class="overflowable"><p ng-repeat="user in users">{{user}}</p></div></div><div class="clr"><form ng-submit="sendMessage()">Message:<input size="60" ng-model="message"><input type="submit" value="Send"></form></div><div class="clr"><h3>Change your name</h3><p>Your current user name is {{name}}</p><form ng-submit="changeName()"><input ng-model="newName"><input type="submit" value="Change Name"></form></div></div><script src="lib/angular/angular.js"></script><script src="/socket.io/socket.io.js"></script><script src="js/app.js"></script><script src="js/services.js"></script><script src="js/controllers.js"></script><script src="js/filters.js"></script><script src="js/directives.js"></script></body></html>

これはコンパイルされたインデックスページです...

Express を初めて使用するので、node_modules を認識させる方法がわかりません。どんな助けでも大歓迎です。

サーバー.js

/**
 * Module dependencies.
 */

var express = require('express'),
    app = express(),
    path = require('path'),
    routes = require('./app/routes'),
    http = require('http'),
    socket = require('./app/routes/socket.js'),
    server = http.createServer(app);

// Hook Socket.io into Express
var io = require('socket.io').listen(server);

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/app/views');
  app.set('view engine', 'jade');
  app.set('view options', {
    layout: false
  });
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.static(__dirname + '/public'));
  app.use(app.router);
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

// Routes

app.get('/', routes.index);
app.get('/partials/:name', routes.partials);

// redirect all others to the index (HTML5 history)
app.get('*', routes.index);

// Socket.io Communication

io.sockets.on('connection', socket);

// Start server

app.listen(3000);
4

1 に答える 1

1

に変更app.listen(3000);server.listen(3000);ます。express/http/socket.io 統合のボイラープレートは扱いにくく、注意を払わずに簡単にコピーできます。

于 2013-09-28T23:11:28.077 に答える