2016-01-29 60 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。 –