Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 数据库更新后的nodejs自动刷新视图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
每次函数数据库进行更改时,我都希望使用nodeJS来刷新我的视图.如果我们以MEAN-stack为例,我不想每隔x秒发送一次$http请求来检查是否对数据库进行了更改.我希望前端自动得到通知,然后更新视图.

这是什么最佳做法?我会在服务器端使用某种Oberserver模式,但不知道如何通过它来通知前端.

解决方法

要让前端自动获得通知然后更新视图,您可以使用Socket.io框架.
您可以在他们的网站上找到所有文档: http://socket.io/
这是一个基本的例子:

app.js(设置服务器)

var http = require('http');
var express = require('express');
var port = normalizePort(process.env.PORT || '1000');
var app = express();
var server = http.createServer(app);
server.listen(port);

io = require('socket.io')(server);

///ROUTES
var routes = require('./routes/index')(io);
var users = require('./routes/users');
///////

我将io对象传递给路由索引(当然,在app.js上还有很多东西.这只是一个基本的例子……).

MysqL.js(为连接创建池)

var MysqL = require("MysqL");
var pool = MysqL.createPool({
host     : 'host',user     : 'user',password : 'pass',database : 'db_name',connectionLimit: 1000
});

exports.pool = pool;

index.js

module.exports = function(io) {
 var express = require('express');
 var router = express.Router();
 var MysqL = require('../MysqL.js').pool;

 io.on('connection',function (socket) {
        socket.on('event_name',function (data) {
    MysqL.getConnection(function(err,connection){
        if (err) {
          connection.release();
          return;
        }               
         connection.query("sql STUFF",function(err,rows){
            if(rows.length>0){//checks if there are more than 0 rows returned.....
                socket.emit('do_something',data_you_want_to_pass);
            }
            else{
                socket.emit('do_something_else',data_you_want_to_pass);
            }
            connection.release();    
         });

          connection.on('error',function(err) {      
            return;    
          });
    });
  });

});

router.get('/',function(req,res) {
res.render("index"); 
});

return router;
}

然后在html页面上你又有了socket.emit和socket.on …..

我建议你看看文档和其他几个例子……

我希望我帮助过你.

大佬总结

以上是大佬教程为你收集整理的node.js – 数据库更新后的nodejs自动刷新视图全部内容,希望文章能够帮你解决node.js – 数据库更新后的nodejs自动刷新视图所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: