似乎我能找到的所有文档jsdom
都是关于“抓取其他人的页面”以获取信息。我想使用jsdom
或node-jquery
更新用户所在的页面。我知道当我编写代码时,我可以有一个<script>
链接到公共目录中的 JavaScript 文件的常规标记,但如果可能的话,我想学习如何从服务器上执行此操作。我真正想要的是允许多个用户连接到一个页面并在一个用户执行操作时为所有用户更新页面。例如,按钮 1 将背景变为黑色。按钮 2 将其变为红色,按钮 3 将其变为白色。如果我错了,请纠正我,但我认为通过<script>
标签链接到 JavaScript 文件是不可能的。所以看着jsdom
:
jsdom.env({html: ???, src: jquery, done: callback });
好的,这是第 1 个问题。我不知道在这段代码中为 html 放什么来获取我的 DOM 对象,或者我能做什么。我的文件是用玉写的,所以我不能只从文件中加载它们。然后我开始想,也许我可以把这段代码放在我代码的路由部分,并从req
变量中获取 html。所以我开始在我的路由代码中玩耍:
exports.index = function(){
res.render('index', {title: 'MyTitle'});
};
我只想说,整个路由的事情已经让我大吃一惊了。我已经尝试res.render
了第二次,但这不起作用。所以这导致了问题 2。即使我可以获取 DOM 对象并对其进行操作,我也不知道如何将它们推回客户端,因为再做一秒钟res.render
是行不通的。更不用说这会破坏目的,因为如果我让它们重新渲染,我不妨将它们重定向到另一个页面。
我打算用它socket.io
来处理用户连接,所以也许关键就在那里。也许我可以设置 asocket.on('button_click', function(){ ... });
但我不知道在该函数中放置什么来处理 DOM 操作和更新 DOM,或者在客户端如何让按钮发出'button_click'
,因为客户端无法访问套接字。 io 变量。
因此,如果有人可以帮助我使用示例向我解释这些事情,那就太好了。我真的很想弄清楚这一切,我花了几天时间研究和阅读 node.js、express.js、socket.io、jsdom 和 node-jquery 的 API 文档。似乎我发现的所有示例对于他们自己的领域来说都是非常基础的,并且没有任何示例可以真正将它们联系在一起。