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 以及用户照片。
我正在尝试创建一个 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 以及用户照片。