gpt4 book ai didi

mysql - 我将如何使用 Node.js 作为前端和 Wordpress 作为后端?

转载 作者:可可西里 更新时间:2023-11-01 07:12:53 27 4
gpt4 key购买 nike

我有过使用 Wordpress 作为 CMS 后端的想法,因为很多人都知道它而且它很容易使用,然后使用 Node.JS 作为前端。您现在可能在想,我一开始为什么要这样做,有什么好处?

我想使用 websockets,用于 Node.JS 的出色的 Socket.io 库提供了漂亮的跨浏览器 websockets 支持。本质上,我希望用户访问一个站点,创建一个 websocket,然后将内容作为 JSON 异步提供给前端,然后在前端解码,所有这些都无需刷新页面。

实际上,我正在使 Wordpress 成为一个实时 CMS。您访问了一个网站,但您点击的每个链接都会以 JSON 格式获取页面并通过 websocket 返回它以保存多个请求,当然还有页面大小。

我如何让 Node.JS 与 MySQL 数据库对话,提取信息然后显示它?任何教程、资源和其他有用的技巧将不胜感激。我的几个同事也有同样的疑问,所以我认为答案对每个人都有很大的帮助。

最佳答案

确切地说,您不能将 Node.js 用于前端解决方案,因为它在服务器上运行,而不是在浏览器上运行(将其视为任何其他服务器端语言,如 PHP、JSP 等) .

但是,您可以使用 jQuery 或任何其他 Javascript 库创建所描述的解决方案,您只需使用 Socket.IO 实现数据传输即可。在服务器端,你需要一些东西来处理 websockets,所以最原生的方法是使用 Node.js,但是因为你想使用 Wordpress,它变得非常复杂,因为 Wordpress 并不打算用于按照您描述的方式,恐怕您必须在 Node 中从头开始编写 CMS。

此外,您描述的方式存在巨大缺陷。搜索引擎抓取工具仍然无法解析和运行 Javascript,因此如果您的所有内容都是动态加载的,对于 Google 和其他人来说它似乎是空的,因此它不可能出现在搜索结果中,使您的网站变得毫无用处.

对于 MySQL 和 Node 的其他模块,你应该检查 NPM registryNode modules page .

编辑在 Dwayne 在评论中解释了他的解决方案之后,我会这样做:

  1. 我会在前端使用 jQuery。使用 .on() 绑定(bind) 文档 ,并将选择器设置为“a”,这样网页上的每个 anchor 都会触发处理程序。
  2. 处理程序解析 a.href 属性并确定它是否是外部链接(不应由 Javascript 处理),或者它是否是指向下一页、文章等的链接. 您可以通过在处理程序中调用 e.preventDefault() 来阻止默认操作,这会阻止浏览器重定向到该位置。
  3. 然后处理程序将根据文章通过调用.getJSON() 到URL 来获取JSON 中的内容。最简单的方法是通过 .htaccess 将特定模式(例如 www.domain.com/api 等所有 url)重定向到 Node 服务,以防止跨域问题。
  4. 然后 Node 会看到请求,提取参数并弄清楚用户想要什么。然后用 this module 连接到 MySQL 数据库(尽可能简单)并返回相应的格式化为 JSON 的内容。不要忘记将 Content-Type header 设置为“application/json”。
  5. jQuery 获取响应,找出请求的类型并相应地更新内容。利润。

如您所见,在这种情况下我不会使用 WebSockets,因为您不会真正从中获益太多。它们主要用于双向的小型实时更新(没有巨大的 HTTP header 来减少带宽)。这意味着服务器也可以将数据推送到浏览器,而无需浏览器请求。在博客上下文中,这不是必需的,并且您不会有太多请求,因此带宽差异无论如何都不会引人注意。但是,如果您想将它用于教育目的,基本上只需将 getJSON 部分替换为 SocketIO,不过我不确定 Apache 是否支持代理 WebSockets。关于 SocketIO 基础的额外信息是 here .

关于mysql - 我将如何使用 Node.js 作为前端和 Wordpress 作为后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502406/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com