Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor.js:ReferenceError:未定义窗口_Javascript_Meteor - Fatal编程技术网

Javascript Meteor.js:ReferenceError:未定义窗口

Javascript Meteor.js:ReferenceError:未定义窗口,javascript,meteor,Javascript,Meteor,我正在尝试用Meteor.js创建一个多路径web应用程序。我添加了iron:router包,并在根目录的lib文件夹中创建了以下router.js文件。看起来是这样的: ////////////////////////// // Router ////////////////////////// Router = { uri: _.compact(window.location.pathname.split("/")), routes: [], addRoute:

我正在尝试用Meteor.js创建一个多路径web应用程序。我添加了iron:router包,并在根目录的lib文件夹中创建了以下router.js文件。看起来是这样的:

//////////////////////////
// Router
//////////////////////////

Router = {
    uri: _.compact(window.location.pathname.split("/")),
    routes: [],

    addRoute: function(route, template) {
        var segments =  _.compact(route.split("/"));

        var placeholders = _.reduce(segments, function(currentArr, piece, index) {
            if (piece.substr(0, 1) === ":") {
                currentArr.push(index);
                segments[index] = piece.substr(1);
            }
            return currentArr;
        }, []);

        this.routes.push({
            route: segments,
            template: template,
            placeholderIndexes: placeholders
        });
    },
    getMatchingRoute: function(){
         for (var i in this.routes) {
             var route = this.routes[i];
             var data = {};

             if (route.segments.length === this.uri.length) {
                 var match = _.every(route.segments, function(seg, i){
                      if (_.contains(route.placeholderIndexes, i)) {
                           data[seg] = this.uri[i];
                           return true;
                      } else {
                           return seg === this.uri[i];
                      }
                 }, this);

                 if (match) {
                      return {
                          data: data,
                          template: route.template
                      }
                 }
            }
        }
        //no matches (add 404 or default template maybe?)
        return false;
    },
    run: function(){
        var route = this.getMatchingRoute();
        if (route) {
            var fragment = Meteor.render(function() {
                if (Template[route.template] !== undefined) {
                     return Template[route.template](route.data);
                }
            });

            document.body.appendChild(fragment);
        } else {
            //404
        }
    }
};
在本地meteor服务器上运行时,我得到以下输出:

=> Started proxy.                             
=> Started MongoDB.                           

W20160211-10:47:37.487(-8)? (STDERR)          
W20160211-10:47:37.487(-8)? (STDERR) /Users/***************/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245
W20160211-10:47:37.488(-8)? (STDERR)                        throw(ex);
W20160211-10:47:37.488(-8)? (STDERR)                              ^
W20160211-10:47:37.488(-8)? (STDERR) ReferenceError: window is not defined
W20160211-10:47:37.488(-8)? (STDERR)     at lib/router.js:6:20
W20160211-10:47:37.488(-8)? (STDERR)     at /Users/************/www/myapp/.meteor/local/build/programs/server/app/lib/router.js:77:4
W20160211-10:47:37.488(-8)? (STDERR)     at /Users/************/www/myapp/.meteor/local/build/programs/server/boot.js:242:10
W20160211-10:47:37.488(-8)? (STDERR)     at Array.forEach (native)
W20160211-10:47:37.489(-8)? (STDERR)     at Function._.each._.forEach (/Users/************/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20160211-10:47:37.489(-8)? (STDERR)     at /Users/*************/www/myapp/.meteor/local/build/programs/server/boot.js:137:5
=> Exited with code: 8
W20160211-10:47:41.062(-8)? (STDERR)          
W20160211-10:47:41.062(-8)? (STDERR) /Users/*************/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245
W20160211-10:47:41.063(-8)? (STDERR)                        throw(ex);
W20160211-10:47:41.063(-8)? (STDERR)                              ^
W20160211-10:47:41.069(-8)? (STDERR) ReferenceError: window is not defined
W20160211-10:47:41.069(-8)? (STDERR)     at lib/router.js:6:20
W20160211-10:47:41.069(-8)? (STDERR)     at /Users/************/www/myapp/.meteor/local/build/programs/server/app/lib/router.js:77:4
W20160211-10:47:41.069(-8)? (STDERR)     at /Users/*************/www/myapp/.meteor/local/build/programs/server/boot.js:242:10
W20160211-10:47:41.070(-8)? (STDERR)     at Array.forEach (native)
W20160211-10:47:41.070(-8)? (STDERR)     at Function._.each._.forEach (/Users/*************/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20160211-10:47:41.070(-8)? (STDERR)     at /Users/**************/www/myapp/.meteor/local/build/programs/server/boot.js:137:5
=> Exited with code: 8
W20160211-10:47:44.633(-8)? (STDERR)          
W20160211-10:47:44.634(-8)? (STDERR) /Users/**************/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245
W20160211-10:47:44.634(-8)? (STDERR)                        throw(ex);
W20160211-10:47:44.634(-8)? (STDERR)                              ^
W20160211-10:47:44.640(-8)? (STDERR) ReferenceError: window is not defined
W20160211-10:47:44.640(-8)? (STDERR)     at lib/router.js:6:20
W20160211-10:47:44.641(-8)? (STDERR)     at /Users/***************/www/myapp/.meteor/local/build/programs/server/app/lib/router.js:77:4
W20160211-10:47:44.641(-8)? (STDERR)     at /Users/***************/www/myapp/.meteor/local/build/programs/server/boot.js:242:10
W20160211-10:47:44.641(-8)? (STDERR)     at Array.forEach (native)
W20160211-10:47:44.641(-8)? (STDERR)     at Function._.each._.forEach (/Users/***************/.meteor/packages/meteor-tool/.1.1.10.1b51q9m++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20160211-10:47:44.641(-8)? (STDERR)     at /Users/**************/www/myapp/.meteor/local/build/programs/server/boot.js:137:5
=> Exited with code: 8
=> Your application is crashing. Waiting for file change.

发生了什么事?为什么不能识别窗口变量。

lib文件夹中的项目同时在服务器和客户端上运行。由于服务器上不存在窗口,它会抛出一个错误。

lib文件夹中的项目同时在服务器和客户端上运行。由于服务器上不存在窗口,因此它会抛出一个错误。

听起来像是在node.js下运行浏览器端代码听起来像是在node.js下运行浏览器端代码