我在后端使用Loopback作为后端和Angularjs。要求是根据一些间隔向所有连接的客户端发送数据。
这是我的server.js文件:
var loopback = require('loopback');
var boot = require('loopback-boot');
var app = module.exports = loopback();
app.start = function() {
return app.listen(function() {
app.emit('started');
var baseUrl = app.get('url').replace(/\/$/, '');
console.log('Web server listening at: %s', baseUrl);
if (app.get('loopback-component-explorer')) {
var explorerPath = app.get('loopback-component-explorer').mountPath;
console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
}
});
};
boot(app, __dirname, function(err) {
if (err) throw err;
// start the server if `$ node server.js`
if (require.main === module) {
//app.start();
app.io = require('socket.io')(app.start());
app.io.on('connection', function(socket){
console.log('a user connected');
var runs = app.models.runs;
setInterval(function(){
// socket.emit('model', Model.find({limit : 500}));
}, 2000);
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
}
});
我试图访问我的模型并发出它,但我无法弄清楚如何访问模型数据。
答案 0 :(得分:1)
好吧,好像你已经从代码中得到了你想要的东西,不知道是什么问题。根据要求,您可以将代码更改为此代码,它应该可以正常工作:
var runs = app.models.runs;
setInterval(function(){
runs.find({limit : 500})).then(function(results){
socket.emit('model', results);
}).catch(console.error);
}, 2000);
这里需要注意的事情。
results
变量将是一个包含500个文档的数组。对我来说看起来很大,它可能会有糟糕的表现。小心一点。