2016-01-29 24 views
0

我是EmberJS和RethinkDB的新手。我正在使用rethinkDB的changefeeds来为用户指定数据来创建带有emberjs的web推送通知应用程序。如何在EmberJS框架中使用RethinkDB?

我已经创建了与nodejs和socket.io相同的内容。它工作正常。我想将其转换为emberjs代码。但是当我试图在bower.json中包含rethinkdb时。我得到一个消息“Package RethinkDB not found”。

"rethinkdb": "~2.0.0" 

enter image description here

下面是我的NodeJS工作代码Socket.io和RethinkDB

server.js

var sockio = require("socket.io"); 
var app = require("express")(); 
var r = require("rethinkdb"); 
var http = require('http'); 

var io = sockio.listen(app.listen(3000), {log: false}); 

app.get('/', function (req, res) { 
    res.sendFile(__dirname + '/home.html'); 
}); 



r.connect({host: 'localhost', port: 28015}) 
.then(function(conn){return r.db('my_db').table('user_feeds').changes().run(conn);}) 
.then(function(cursor){cursor.each(function(err, data) {   
    io.emit('feeds', data); 
    console.log("after Data >>>>>\n"+JSON.stringify(data)); 
});}); 

console.log("server started @ http://127.0.0.1:3000/"); 

home.html的

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Asset Tracker</title> 
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> 
<script type="text/javascript"> 
window.onload = function() { 
var socket = io.connect(); 
socket.on("feeds", function(data) { 
    document.getElementById("feeds").innerHTML = JSON.stringify(data); 

}); 
}; 
</script> 
</head> 
<body> 
<div id="feeds"></div> 
</body> 
</html> 

我想将上面的代码迁移到emberJS。正如我刚刚发现的那样,我发现很难迁移。没有太多的代码示例可用于使用emberjs online进行rethinkdb。

回答

1

由于您的客户端代码不包含RethinkDB特定代码,因此您应该查找用于ember的socket.io。有几个emberjs的实现。

在bower中没有发布rethinkdb软件包。还有一个npm包,你可以在浏览器中使用它。

+0

如果我包括rethinkdb作为npm包,并在emberjs-cli-build.js如果我使它全球化,是否有可能在整个应用程序中使用它? –

+0

你是对的。没有对凉亭的支持。我试图用npm install导入rethinkdb驱动,它不会因为它写在了nodejs方法上,而这些方法不支持ember-cli。 –