2012-03-19 4 views
1

Я новичок в node.js, и я просто пытаюсь узнать, как использовать Express и Jade. Кажется, что эта линия в jade.js вызывает какие-то проблемы: window.jade = require("jade");Jade with Express - ReferenceError: окно не определено

Я могу запустить мой сервер просто отлично, но когда я посещаю его в браузере, я получаю эту ошибку:

ReferenceError: window is not defined 
    at C:\Users\User\Desktop\node-js-web\node_modules\jade\jade.js:3142:1 
    at Object.<anonymous> (C:\Users\User\Desktop\node-js-web\node_modules\jade\jade.js:3143:2) 
    at Module._compile (module.js:441:26) 
    at Object..js (module.js:459:10) 
    at Module.load (module.js:348:31) 
    at Function._load (module.js:308:12) 
    at Module.require (module.js:354:17) 
    at require (module.js:370:17) 
    at Object.<anonymous> (C:\Users\User\Desktop\node-js-web\node_modules\jade\index.js:4:5) 
    at Module._compile (module.js:441:26) 

Когда я прокомментирую эту строку, я получаю эту ошибку:

TypeError: Object #<Object> has no method 'compile' 
    at Function.compile (C:\Users\User\Desktop\node-js-web\node_modules\express\lib\view.js:68:33) 
    at ServerResponse._render (C:\Users\User\Desktop\node-js-web\node_modules\express\lib\view.js:417:18) 
    at ServerResponse.render (C:\Users\User\Desktop\node-js-web\node_modules\express\lib\view.js:318:17) 
    at C:\Users\User\Desktop\node-js-web\server.js:37:7 
    at callbacks (C:\Users\User\Desktop\node-js-web\node_modules\express\lib\router\index.js:272:11) 
    at param (C:\Users\User\Desktop\node-js-web\node_modules\express\lib\router\index.js:246:11) 
    at pass (C:\Users\User\Desktop\node-js-web\node_modules\express\lib\router\index.js:253:5) 
    at Router._dispatch (C:\Users\User\Desktop\node-js-web\node_modules\express\lib\router\index.js:280:4) 
    at Object.handle (C:\Users\User\Desktop\node-js-web\node_modules\express\lib\router\index.js:45:10) 
    at next (C:\Users\User\Desktop\node-js-web\node_modules\express\node_modules\connect\lib\http.js:203:15) 

Я действительно не знаю, что делать здесь. Может ли кто-нибудь помочь?

ответ

4

В Node.js нет объекта window, потому что его нет в браузере. Если вы хотите подключить jade к глобальному охвату, используйте global.

(Но почему вы хотите, чтобы переменная глобальной для приложения, в любом случае только Экспресс нуждается объект нефрита, чтобы сделать ваше мнение?).

+0

Этот код находится в jade.js - по-видимому, из-за какой-то ошибки работать вокруг? [link] (https://github.com/visionmedia/jade/issues/247) –

+1

После более пристального изучения ваших ошибок я вижу, что он не работает внутри '' jade.js'' в строке '' 3142' '!? [Но '' jade.js'' - это только '' 238'' линии длиной] (https://github.com/visionmedia/jade/blob/master/lib/jade.js). Как вы загружаете код в Node.js? Не похоже, что вы делаете простой '' var jade = require ('jade') '' –

+0

ah ok пакет, который я скачал из npm, отсутствовал /lib/jade.js –