Магистральный нерабочий узел (безголовый TDD / разработка)

#node.js #backbone.js

#node.js #backbone.js

Вопрос:

Я пытаюсь использовать Vows (BDD) для тестирования моего приложения, используя магистральный (для которого требуется jQuery). Я хочу использовать NodeJS для безголовой разработки, но я получаю ошибку A), когда пытаюсь выполнить код в B). По сути, объект jQuery не входит в область действия магистральной библиотеки. Но все было запрошено / импортировано, как в C). У кого-нибудь успешно работает магистральный узел на NodeJS. Я знаю о nodechat (скачал код и попытался его запустить) и моделях магистрали в блоге сервера, примерах, но они не работают с тем, что я настроил. Я использую Node (v0.5.10-pre) и Backbone v (0.5.3).

A)

 Ошибка типа: невозможно вызвать метод 'ajax' неопределенного
 в [object Object] . (/js/backbone.js:1082:14)
... 

Б)

 var fubar = новый myapp.models.Fubar(); // у этого класса уже есть URL, установленный
fubar.выборка ();

C)

 var requirejs = требовать ('js/r.js '); 
 requirejs.config({ nodeRequire: требовать, baseUrl: 'js', }); 

 var vows = требовать ('vows');
 var assert = требовать ('утверждать');

 //** Взломать, чтобы получить объект Window для jQuery
var zombie = require("зомби");
 var browser = новый зомби.Браузер;
 браузер.окно.местоположение = "http://localhost:3000 ";
 window = browser.window;

 //** Взлом из-за того, что Sinon не предназначен для работы в NodeJS; добавление некоторых заглушек, чтобы заставить его работать
sinon = require('sinon');
 var xhr = require("sinon / lib /sinon /util/fake_xml_http_request");
 var fakeServer = require("sinon / lib /sinon/util/fake_server").fakeServer;

 requirejs(['jquery-1.6.4', 'json2', 'подчеркивание', 'магистральный', '_** myapp **_', ]); 

Я предполагаю, что подчеркивание вставлено и используется правильно. Но я не думаю, что я продвинулся достаточно далеко, чтобы подтвердить.

Спасибо

Ответ №1:

Хорошо, я смог заставить это работать, заставив узел выполнить требование:

 jQuery = $ = require("jquery");
 requirejs([ 'json2', 'underscore', 'backbone', "storydesk", ]);

Теперь мне нужно подключить Sinon fakeServer и посмотреть, как