2017-12-28 97 views
7

में डालने के बाद दस्तावेज़ नहीं मिला/गायब है, मैं '_users' नामक एक साधारण डीबी बनाने की कोशिश कर रहा हूं और इसमें कॉच-डीबी का उपयोग करके एक नया उपयोगकर्ता डालने की कोशिश कर रहा हूं।couchdb डेटाबेस

मैं निम्नलिखित कोड को चलाने के लिए खोल में नोड उपयोग कर रहा हूँ: इस चलाने के बाद

UserProfile.js

var nano = require('nano')('http://localhost:5984')   
module.exports = { 
    addUser: function(id, name, password){     
     var usersDB = nano.use('_users') 
     var options = { 
      "_id": "org.couchdb.user:"+id, 
      "name": id, 
      "roles": [],    
      "type": "user", 
      "password": password 
     } 
     usersDB.insert(options, function(err, body, header) { 
      console.log('insert is being called') 
      if (err) { 
       console.log(err.message); 
       return; 
      }    
      console.log(body); 
     }); 

    } 
}; 

नोड repl

> var nano = require('nano')('http://localhost:5984') 
undefined 
> var usersdb = nano.db.destroy('_users') 
undefined 
> var usersdb = nano.db.create('_users') 
undefined 
> var profile = require('./UserProfile.js') 
undefined 
> profile.addUser('cheese', 'flubber', 'goat') 
undefined 
> insert is being called 
> OS process timed out. 

, मैं एक को देखने की उम्मीद /_users/cheese पर प्रवेश, लेकिन कोई प्रविष्टि मौजूद नहीं है। क्या मैं कुछ गलत कर रहा हूँ?

+0

1. अपेक्षित प्रविष्टि /_users/org.couchdb.user:cheese 2. उपयोगकर्ताओं DB.insert कॉलबैक से प्रतिक्रिया क्या है? –

+0

@ AlexisCôte जब मैं '/_users/org.couchdb.user पर जाता हूं: पनीर 'मैं' {"त्रुटि": "not_found", "कारण": "गायब"} देखता हूं। कॉलबैक से कोई प्रतिक्रिया नहीं है; जैसा कि आप उपरोक्त मेरे खोल में देख सकते हैं, यह बस अपरिभाषित लौटाता है। –

+0

'nano.db.destroy' और' nano.db.create' फ़ंक्शंस कॉलबैक का उपयोग करते हैं - क्या अगली कॉल पर जाने से पहले API कॉल को हल करता था? – tephyr

उत्तर

1

जब आप कोई उपयोगकर्ता बनाते हैं, तो _id इस तरह होना चाहिए: org.couchdb.user:name

अपने मामले में, आप एक अलग नाम के साथ उपयोगकर्ता पनीर बनाते हैं।

इसके अलावा, आप अपनी त्रुटि कॉलबैक जांचना चाहेंगे। सोफे से एक त्रुटि संदेश वापस किया जाना चाहिए।

इसके अलावा

जब आप हटा सकते हैं और डेटाबेस बनाते हैं, आप कॉलबैक उपयोग करना होगा।

जब आप _users बनाते हैं, तो आप सीधे उपयोगकर्ता बनाते हैं, भले ही _users डेटाबेस को बनाने की पुष्टि नहीं की गई हो।

+0

मैंने यह दिखाने के लिए अपना प्रश्न अपडेट किया कि अब मेरे पास 'org: couchdb.user: name' और' name' समान मान ('id') है। साथ ही, मैं त्रुटि कॉलबैक की जांच नहीं कर सकता क्योंकि कॉलबैक कॉल करने में विफल रहा है। मैं बस वापस 'अपरिभाषित' मिलता है। –

+0

@ डेविड जे। मैंने अपना जवाब अपडेट किया –