以前は、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 == "chatroom"}">{{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);