2013-03-22 7 views
6

चलाते समय अनचाहे, अनिर्दिष्ट 'त्रुटि' मैं node.js express.js में एक नौसिखिया हूं। (आज सुबह शुरू किया गया :-)) मैंने db.js को शामिल किया है जिसमें मेरा कनेक्शन विवरण mongolab और User.js है जो मेरा मॉडल है। कृपया नीचे दिया गया कोड पाएं।नोड ऐप

Db.js

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

module.exports.mongoose = mongoose; 
module.exports.Schema = Schema; 

// Connect to cloud database 
var username = "Ausername" 
var password = "Apassword"; 
var address = 'Aaddress'; 
connect(); 

// Connect to mongo 
function connect() { 
    var url = 'mongodb://' + username + ':' + password + address; 
    mongoose.connect(url); 
} 
function disconnect() {mongoose.disconnect()} 

User.js

var db = require('../lib/db'); 

var UserSchema = new db.Schema({ 
    username : {type: String, unique: true} 
    , password : String 
}) 

var MyUser = db.mongoose.model('User', UserSchema); 

// Exports 
module.exports.addUser = addUser; 

// Add user to database 
function addUser(username, password, callback) { 
    var instance = new MyUser(); 
    instance.username = username; 
    instance.password = password; 
    instance.save(function (err) { 
    if (err) { 
     callback(err); 
    } 
    else { 
     callback(null, instance); 
    } 
    }); 
} 

और जब मैं नोड अनुप्रयोग चलाने के लिए, उसके नीचे त्रुटि

C:\Sripaul\Softwares\NodeJS\Projects\authentication>node app 
Express server listening on port 3000 

C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\lib\utils.js:413 
     throw err; 
     ^
Error: Uncaught, unspecified 'error' event. 
    at NativeConnection.EventEmitter.emit (events.js:68:15) 
    at Model.init (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\lib\model.js:554:31) 
    at exports.tick (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\lib\utils.js:408:16) 
    at Db.ensureIndex (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1066:28) 
    at Db.indexInformation (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1200:28) 
    at Cursor.toArray (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:124:30) 
    at Cursor.each (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:166:32) 
    at Cursor.nextObject.self.queryRun (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:441:39) 
    at Cursor.close (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:687:5) 
    at Cursor.nextObject.commandHandler (C:\Sripaul\Softwares\NodeJS\Projects\authentication\node_modules\mongoose\node_modules\mongodb\lib\mongodb\cursor.js:441:21) 

कोड रिपोर्ट में app.js में है नीचे

app.post('/signup', function(req, res) { 
    var username = req.body.username; 
    var password = req.body.password; 
    User.addUser(username, password, function(err, user) { 
    if (err) throw err; 
    res.redirect('/form'); 
    }); 
}); 

क्या कोई इसे हल करने में मेरी सहायता कर सकता है?

+0

कुछ कोड याद आ रही है, क्या कॉलबैक आप समारोह adduser को देने कैसा दिखता है: 5 अधिक जानकारी के लिए mongolab

के लिए संस्करण का विरोध कर रहा है? साथ ही, आपको अपना उपयोगकर्ता नाम और पासवर्ड यहां नहीं रखना चाहिए। –

+0

हाय मैंने अपना उपयोगकर्ता नाम/पासवर्ड और पता दोहराया - उस तरह की चीज़ पोस्ट करने का कोई अच्छा विचार नहीं है जब तक कि आप किसी को अपने मोंगो क्लाउड डीबी तक पहुंचने के लिए नहीं चाहते ??? –

+0

धन्यवाद अमीर। मैं संपादित करने के बाद उपयोगकर्ता नाम और pwd को हटाना चाहता था लेकिन भूल गया :-( – Sripaul

उत्तर

2

ऐसा लगता है कि मोंगो प्रयोगशाला में यह समस्या हुई क्योंकि यह अमेज़ॅन क्लाउड से कनेक्ट नहीं हो सकता है। मैंने जॉयेंट क्लाउड के साथ प्रयास किया और यह ठीक काम किया।

2

समान मुद्दा त्रुटि संदेश एक ही था सामना तथापि स्टैक ट्रेस अलग था,

/%/node_modules/mongoose/lib/utils.js:413 
     throw err; 
      ^
TypeError: Uncaught, unspecified "error" event. 
    at TypeError (<anonymous>) 
    at NativeConnection.EventEmitter.emit (events.js:74:15) 
    at /%/authentication/node_modules/mongoose/lib/model.js:554:31 
    at /%/authentication/node_modules/mongoose/lib/utils.js:408:16 
    at /%/authentication/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1066:28 
    at /%/authentication/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1200:28 
    at /%/authentication/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:124:30 
    at /%/authentication/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:166:32 
    at /%/authentication/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:441:39 

तय यह db.js में पता चर से पहले अतिरिक्त स्थान को हटाना शुरू कर (पुस्तक के रूप में)।

var address = ' @dbh42.mongolab.com:27427/nockmarket'; 

होना चाहिए (अंतरिक्ष मन)

var address = '@dbh42.mongolab.com:27427/nockmarket'; 
0

मैं भी पहले mongolab का उपयोग करने में इस मुद्दे था। भले ही आपके पास एक मोंगोलाब उपयोगकर्ता है, फिर भी आपको उपयोगकर्ता टैब

-1

ठीक है, मुझे लगता है कि वेबसाइट के मुताबिक, नवीनतम रिलीज मुद्दा अधिक है, नवीनतम रिलीज संस्करण 3 है। मुझे लगता है कि सभी मुफ़्त योजनाएं अब इस संस्करण पर समर्थित हैं और पुराने संस्करण अब समर्थित नहीं हैं।

इस समस्या को हल करने के लिए, एक नया ड्राइवर स्थापित: अपने काम प्रमाणीकृत निर्देशिका में, कमांड चलाएँ:

$ npm install mongoose 

$ node app सब कुछ के साथ अपने ऐप को पुन: प्रारंभ करने के बाद ठीक किया जाना चाहिए।

1

मैं जानता हूँ कि यह एक पुराने विषय है, लेकिन मैं उस तरह इस समस्या का समाधान: बजाय "नेवला":

package.json में

"2.6.5" यह "नेवला": " * "

तो कंसोल में (सीडी/घर/yourusername/प्रमाणीकरण)

प्रकार" NPM स्थापना रद्द करें नेवला " तो प्रकार" NPM स्थापित नेवला "

ऐसा लगता है कि यह mongoose 2.6 है।http://digiscape.co.uk/blog/tips/node/unspecified-error-event-not-authorized-for-query-on-db-system-indexes-at-model-js55431/