我正在尝试使用 Vows (BDD) 来测试 MyApp,使用 Backbone(需要 JQuery)。我想使用 NodeJS 进行 headless 开发,但是当我尝试执行 B) 中的代码时出现错误 A)。基本上,JQuery 对象不在 Backbone 库的范围内。但是一切都像在 C 中一样被要求/导入)。有没有人成功地让 Backbone 在 NodeJS 上工作。我知道 nodechat (下载代码并尝试运行它)和 backbone models on server blog post ,示例,但它们不适用于我设置的内容。我正在使用 Node(v0.5.10-pre) 和 Backbone v(0.5.3)。
一个)
TypeError: Cannot call method 'ajax' of undefined at [object Object]. (/js/backbone.js:1082:14) ...
B)
var fubar = new myapp.models.Fubar(); // this class already has a url set fubar.fetch();
C)
var requirejs = require('js/r.js'); requirejs.config({ nodeRequire: require, baseUrl: 'js', }); var vows = require('vows'); var assert = require('assert'); //** Hack to get a Window object for JQuery var zombie = require("zombie"); var browser = new zombie.Browser; browser.window.location = "http://localhost:3000"; window = browser.window; //** Hack due to Sinon not being designed to work in NodeJS; putting some stubs to get it working 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', 'underscore', 'backbone', '_**myapp**_', ]);
我假设下划线被拉入并正确使用。但我不认为我已经走得足够远来确认。
谢谢
最佳答案
好的,我能够通过让 Node 执行要求来实现它:
jQuery = $ = require("jquery"); requirejs([ 'json2', 'underscore', 'backbone', "storydesk", ]);
现在,我需要插入一个 Sinon fakeServer 看看如何
关于node.js - 主干 Node 不工作( headless TDD/开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782150/