node.js - 从 mysql 数据库重复更新网页

node.js - repeatedly updating webpage from mysql database

我正在尝试创建一个 node.js 应用程序,每隔几秒使用来自 mysql 数据库的新数据自动更新网页。我已关注此站点上的信息:http://www.gianlucaguarini.com/blog/push-notification-server-streaming-on-a-mysql-database/

该站点上的代码确实有效,但经过进一步测试,它保留了 运行 "handler" 函数,因此对处理的数据库的每一行执行 readFile 函数。

我正在学习 node.js,但不明白为什么处理函数总是被调用。我只希望每个连接调用一次。像这样不断地读取index.html文件似乎很低效。

我知道处理函数一直被调用的原因是我在处理函数中放置了一个 console.log("Hello"); 语句,它一直将该行输出到控制台。

您是否提供 client.html 正在寻找的图像 URL?这是我认为正在发生的事情:

客户端通过 Socket.IO 连接到您的服务器并检索用户信息(user_name、user_description 和 user_img)。然后客户端立即尝试使用 user_img URL 加载图像。然而,作者的服务器代码似乎不支持提供这些图片。相反,它只是 returns 每个请求的相同 client.html 文件。这就是为什么它似乎一遍又一遍地调用处理程序的原因 - 它正在尝试为每个用户加载图片。

我建议在节点中使用 express 模块 来提供静态文件,而不是尝试手动执行。您的代码看起来像这样:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

http.use(app.static(__dirname + "/public"));

这实际上是说要为他们从 public 文件夹中请求的任何静态文件提供服务。在该文件夹中,您将放置 client.html 以及用户照片。