如何以编程方式在couchdb中创建数据库?

时间:2016-06-22 05:21:08

标签: ajax couchdb

我可以使用futon or curl命令创建数据库,但我试图通过从用户获取数据库名称来创建数据库。当用户键入数据库名称时,我有一个文本框和一个按钮,并且在单击create db时,我正在调用ajax函数来访问沙发数据库。我真的不知道如何在按钮点击上创建数据库。我可以像任务列表一样插入编辑和更新,但我无法使用ajax创建数据库。 我试过这个

$(document).ready(function(){
            $("#adddb").click(function(){
                var dbname = $("#dbname").val();
                 $.ajax({
                type: "PUT",
                url: DATABASE,
                contentType: "application/json",
                data: dbname
             });
            });
        });
<input type="text" id="dbname" placeholder="Database Name"> 
    <input type="button" id="adddb" value="Add Db">

我收到此错误。

PUT http://127.0.0.1:5984/ 405 (Method Not Allowed)

这是创建数据库的方法还是我错了。有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

正如Doc所暗示的那样:

您的请求不需要包含正文中的任何内容,请求URL本身应包含dbName

var dbName = $("#dbname").val();
$.ajax({
  type: "PUT",
  url: DATABASE_URL+"/"+ dbName
});

dbName也应该确保它遵循以下规则:

  • 名称必须以小写字母(a-z)
  • 开头
  • 小写字符(a-z)
  • 数字(0-9)
  • 任何字符_,$,(,),+, - 和/.

或遵循此RegExp ^[a-z][a-z0-9_$()+/-]*$.

答案 1 :(得分:0)

我一直在尝试以下这项工作正常。

 $("#adddb").click(function(){
                 dbname = $("#dbname").val();
                 $.ajax({
                type: "PUT",
                url: DATABASE+"/"+dbname,
                contentType: "application/json",
                data: dbname
             });

PUT请求有助于在curl PUT命令

中创建数据库