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

时间:2015-03-21 20:51:59

标签: mysql node.js repeat

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

此站点上的代码确实有效,但经过进一步测试,它会继续运行"处理程序"函数,因此为处理的数据库的每一行执行readFile函数。

我正在学习node.js,但无法理解为什么处理程序函数不断被调用。我只希望每次连接都能调用一次。不断阅读index.html文件似乎非常无效。

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

1 个答案:

答案 0 :(得分:1)

您是否提供了client.html正在寻找的图片网址?以下是我的想法:

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

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

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

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

这基本上是为了提供他们从公共文件夹请求的任何静态文件。在该文件夹中,您将放置client.html以及用户照片。