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

How to create a database in couchdb programatically?

我可以使用 futon or curl 命令创建数据库,但我试图通过从用户那里获取数据库名称来创建数据库。当用户键入数据库名称并单击创建数据库时,我有一个文本框和一个按钮,我正在调用 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)

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

我一直在尝试以下对我来说效果很好的方法。

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

PUT 请求有助于在 curl PUT 命令中创建数据库

Doc 所示:

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

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

此外,dbName 应确保遵循以下规则:

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

或遵循此正则表达式 ^[a-z][a-z0-9_$()+/-]*$.