根据this Stack Overflow post中的研究,我了解这与在浏览器中定义的window
而不是node
中的定义有关。但是,我并不完全清楚如何纠正这种情况。我的目标是启动我的服务器,这样我就可以预览我建立的网站(并确保它看起来不错)。
这是我的app.js文件:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.emit('answers', { hello: 'world' });
socket.on('gum', function (data) {
console.log(data);
});
});
angular.module('NoteWrangler', ['ngRoute', 'ngResource']);
这是将节点app.js输入终端时出现的错误:
/Users/Kristin/node_modules/angular/angular.js:26057
})(window, document);
^
ReferenceError: window is not defined
at Object.<anonymous
(/Users/Kristin/node_modules/angular/angular.js:26057:4)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/Kristin/node_modules/angular/index.js:1:63)
at Module._compile (module.js:570:32)
答案 0 :(得分:1)
您已在服务器中声明了角度参考:angular.module('NoteWrangler', ['ngRoute', 'ngResource']);
Angular.JS是一个客户端库,未在服务器端上使用。
如果您使用的是Angular 2,则可能需要使用Angular Universal。
答案 1 :(得分:0)
如果您只是尝试运行静态服务器,请尝试使用命令行工具http-server。
正如其他用户所提到的,window
错误正在发生,因为Angular不打算用于服务器端。要解决此问题,只需删除提及angular
。
答案 2 :(得分:-1)
您使用的是XAMPP还是WampServer?默认情况下,这两个人在本地主机上占用端口80。也就是http://localhost:80。
尝试将端口从80更改为3000.
注意:节点js不需要WAMP或XAMPP,所以如果端口级别有任何冲突。
然后重新启动节点服务器。