2016-06-22 7 views
0

Ich bin in der Lage, eine Datenbank mit Befehl zu erstellen, aber ich versuche, eine Datenbank durch Abrufen des Datenbanknamens vom Benutzer zu erstellen. Ich hatte ein Textfeld und eine Schaltfläche, wenn Benutzer den Namen der Datenbank eingibt und beim Klicken auf create db rufe ich eine Ajax-Funktion auf, um auf die Couch db zuzugreifen. Ich weiß nicht wirklich, wie man eine Datenbank über Knopfdruck erstellt. Ich könnte Beispiel wie Aufgabenliste, um Edit und Update einfügen, aber ich bin nicht in der Lage, eine Datenbank mit Ajax erstellen. Ich habe versucht, mit diesemWie erstellt man eine Datenbank in Couchdb programmatisch?

$(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"> 

ich diese Störung erhalte.

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

Ist dies eine Möglichkeit, eine db zu erstellen oder ich falsch liege. Kann mir jemand helfen?

Antwort

0

Ich habe versucht, das folgende funktioniert gut für mich.

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

PUT-Anfrage hilft eine Datenbank zu erstellen, wie es in curl PUT-Befehl ist

1

Als Doc schlägt vor:

Ihre Anfrage muss nicht alles im Körper enthalten, die Anforderungs-URL sollte sich enthalten die dbName

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

auch sollte die dbName sicherstellen, dass es nach folgenden Regeln:

  • Namen mit einem Kleinbuchstaben (az)
  • Kleinbuchstaben (az)
  • Ziffern (0-9)
  • Jedes der Zeichen _, $, (,), +, beginnen müssen - , und /.

Oder folgen Sie diesem RegExp ^[a-z][a-z0-9_$()+/-]*$.