我有一個應用程序使用HapiJs框架編寫節點,並希望將其連接到CouchDb數據庫,但無法找到代碼來執行此操作。如何將CouchDb與HapiJs連接?
任何人都可以幫我用代碼來做到這一點嗎?這是什麼「正常」的方式?
乾杯!
我有一個應用程序使用HapiJs框架編寫節點,並希望將其連接到CouchDb數據庫,但無法找到代碼來執行此操作。如何將CouchDb與HapiJs連接?
任何人都可以幫我用代碼來做到這一點嗎?這是什麼「正常」的方式?
乾杯!
那麼你不需要任何框架的couchdb。一切都可以通過休息API。只需使用request模塊向api發出請求。舉幾個例子: -
閱讀文檔
request.get("http://localhost:5984/name_of_db/id_of_docuement",
function(err,res,data){
if(err) console.log(err);
console.log(data);
});
從視圖
request.get(
"http://localhost:5984/name_of_db/_design/d_name/_view/_view_name",
function(err,res,data){
if(err) console.log(err);
console.log(data);
});
整個API是記錄here
閱讀有沒有需要管理連接或處理打開和關閉你的數據庫ight正在與其他數據庫一起做。只需啓動couchdb並開始向您的應用程序發出請求。
但是,如果您發現直接向api發出請求對您來說有點麻煩,那麼您可以嘗試使用nano,它提供了一個更好的語法來處理couchdb。
的代碼
一些片斷好,所以我不familliar與高致病性禽流感,所以我只會告訴你如何做與要求去做。
當你調用/
端點它請求處理程序,它執行從docs
var Hapi = require('hapi');
var server = new Hapi.Server(3000);
var request = require("request");
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
reply('Hello, world!');
}
});
server.route({
method: 'GET',
path: '/{name}',
handler: function (req, rep) {
request.get("http://localhost:5984/name_of_db/id_of_docuement",
function(err,res,data){
if(err) console.log(err);
rep(data);
});
}
});
server.start(function() {
console.log('Server running at:', server.info.uri);
});
考慮這個例子。它向couchdb端點發送請求以獲取文檔。除此之外,你不需要任何連接到couchdb的東西。
另一種選擇可能是hapi-couchdb插件(https://github.com/harrybarnard/hapi-couchdb)。
使用它比直接對Couch API直接調用要多一點「hapi-like」。
下面是插件文件的例子:
var Hapi = require('hapi'),
server = new Hapi.Server();
server.connection({
host: '0.0.0.0',
port: 8080
});
// Register plugin with some options
server.register({
plugin: require('hapi-couchdb'),
options: {
url: 'http://username:[email protected]:5984',
db: 'mycouchdb'
}
}, function (err) {
if(err) {
console.log('Error registering hapi-couchdb', err);
} else {
console.log('hapi-couchdb registered');
}
});
// Example of accessing CouchDb within a route handler
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
var CouchDb = request.server.plugins['hapi-couchdb'];
// Get a document from the db
CouchDb.Db.get('rabbit', { revs_info: true }, function(err, body) {
if (err) {
throw new Error(CouchDb.Error(error); // Using error decoration convenience method
} else {
reply(body);
});
}
});
server.start(function() {
console.log('Server running on host: ' + server.info.uri);
});
好吧,但我想知道什麼是什麼是我的應用程序連接到CouchDB的數據庫的代碼?就像我們寫'var Hapi = require('hapi');' – hyprstack