Прежде всего я являюсь автором nano
и буду использовать его в этом ответе.
Вот несколько простых инструкций для начала работы с node.js и CouchDb.
mkdir test && cd test
npm install nano
npm install express
Если у вас установлен couchdb, отлично. Если вы этого не сделаете, вам нужно будет либо установить его, настроить экземпляр онлайн на iriscouch.com
Теперь создайте новый файл с именем index.js
. Внутри поместите следующий код:
var express = require('express')
, nano = require('nano')('http://localhost:5984')
, app = module.exports = express.createServer()
, db_name = "my_couch"
, db = nano.use(db_name);
app.get("/", function(request,response) {
nano.db.create(db_name, function (error, body, headers) {
if(error) { return response.send(error.message, error['status-code']); }
db.insert({foo: true}, "foo", function (error2, body2, headers2) {
if(error2) { return response.send(error2.message, error2['status-code']); }
response.send("Insert ok!", 200);
});
});
});
app.listen(3333);
console.log("server is running. check expressjs.org for more cool tricks");
Если вы настроили username
и password
для своей CouchDB, вам нужно включить ее в URL. В следующей строке я добавил admin:admin@
к URL для примера
, nano = require('nano')('http://admin:admin@localhost:5984')
Проблема с этим сценарием в том, что он пытается создать базу данных каждый раз, когда вы делаете запрос. Это не удастся, как только вы создадите его в первый раз. В идеале вы хотите удалить базу данных create из скрипта, чтобы она работала вечно:
var express = require('express')
, db = require('nano')('http://localhost:5984/my_couch')
, app = module.exports = express.createServer()
;
app.get("/", function(request,response) {
db.get("foo", function (error, body, headers) {
if(error) { return response.send(error.message, error['status-code']); }
response.send(body, 200);
});
});
});
app.listen(3333);
console.log("server is running. check expressjs.org for more cool tricks");
Теперь вы можете либо создавать вручную, либо даже делать это программно. Если вам интересно, как вы этого добьетесь, вы можете прочитать эту статью, которую я написал некоторое время назад Нано-минималистичный CouchDB для node.js .
Для получения дополнительной информации см. expressjs и nano . Надеюсь, это поможет!