Javascript nodejs+;jsdom,jQuery奇怪的行为

Javascript nodejs+;jsdom,jQuery奇怪的行为,javascript,jquery,node.js,serverside-javascript,jsdom,Javascript,Jquery,Node.js,Serverside Javascript,Jsdom,下面的代码只是我的server.js文件中的一个小片段,用于运行jsdom文档提供的测试 var window = jsdom.jsdom().createWindow(); jsdom.jQueryify(window, './jq.min.js' , function() { console.log('inside'); window.$('body').append('<div class="testing">Hello World, It works</div&

下面的代码只是我的server.js文件中的一个小片段,用于运行jsdom文档提供的测试

var window = jsdom.jsdom().createWindow();
jsdom.jQueryify(window, './jq.min.js' , function() {
  console.log('inside');
  window.$('body').append('<div class="testing">Hello World, It works</div>');
  console.log(window.$('.testing').text());
  console.log('end');
});
var window=jsdom.jsdom().createWindow();
jQueryify(窗口,'./jq.min.js',函数(){
console.log('inside');
window.$('body').append('helloworld,It works');
log(window.$('.testing').text());
console.log('end');
});
我得到的输出实际上就是
内部的
,然后服务器挂起,再也不会返回。我添加了一个调试语句
console.log(窗口)
查看是否真正创建了窗口对象,最后我得到了一个相当大的输出语句,详细说明了对象的内容。但是,我注意到的一点是,输出没有显示
$
窗口
对象的定义方法,实际上是
控制台.log(window.$)呈现
未定义的

我知道jsdom仍然处于开发模式,但这里有什么我遗漏的吗


正如一些背景知识一样,我尝试了代码的几种变体,包括使用
jsdom.env()
方法,以及从现有HTML标记构建文档,这两种方法都没有提供预期的结果。

我希望此代码片段可以帮助您:

createWindow = function(fn) {
    var window  = jsdom.jsdom().createWindow(),
        script = window.document.createElement('script');

    jsdom.jQueryify(window, function() {
        script.src = 'file://' + __dirname + '/some.library.js';
        script.onload = function() {
            if (this.readyState === 'complete') {
                fn(window);
            }
        }
    });
}

createWindow(function(window) {
    // Do your jQuery stuff:
    window.$('body').hide();
});