Jade with Express - ReferenceError: окно не определено - PullRequest
2 голосов
/ 19 марта 2012

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

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

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)

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

1 Ответ

4 голосов
/ 19 марта 2012

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

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

...