मैं Express.js और MongoLab का उपयोग कर रहा हूं और मैंने Heroku setup to get MongoDB working का पालन किया है, इस कोड को मेरे app.js में फेंकने के उत्पादन में।मैं मोंगोलाब के साथ हरोकू पर मोंगोडीबी डेटाबेस कैसे स्थापित करूं?
//Routes
app.get('/', function(req, res) {
res.render('index', {
title: 'DumbyApp'
});
});
//save new email
app.post('/', function(req, res){
emailProvider.save({
address: req.param('address')
}, function(error, docs) {
res.redirect('/')
});
});
यह सूचकांक पृष्ठ पर नया रूप renders और मुझे इसे स्थानीय स्तर पर सहेजने देता है लेकिन:
//Mongo on Heroku Setup
var mongo = require('mongodb');
var mongoUri = process.env.MONGOLAB_URI ||
process.env.MONGOHQ_URL ||
'mongodb://localhost/mydb';
mongo.Db.connect(mongoUri, function (err, db) {
db.collection('mydocs', function(er, collection) {
collection.insert({'mykey': 'myvalue'}, {safe: true}, function(er,rs) {
});
});
});
और मैं निम्नलिखित मार्गों और मेरे ईमेल फार्म (app.js में भी) के लिए क्षेत्र है उत्पादन में नहीं है क्योंकि मुझे नहीं पता कि मेरा ईमेल संग्रह कैसे सेट अप करें। क्या कोई मुझे इस माध्यम से चल सकता है? MongoDB और Node.js का उपयोग करने के लिए नया ब्रांड, इसलिए कुछ मदद का उपयोग कर सकता है।
संपादित करें:
MongoLab डाटाबेस इंटरफेस में, मैं एक collection
emails
बुलाया बनाया है। क्या यह कार्रवाई का सही तरीका है?
संपादित करें 2:
यहाँ फ़ाइल स्वयं के साथ-साथ app.js में EmailProvider को परिभाषित कर रहा है।
app.js
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path')
, EmailProvider = require('./emailprovider').EmailProvider;
var emailProvider= new EmailProvider('localhost', 27017);
emailprovider.js
var Db = require('mongodb').Db;
var Connection = require('mongodb').Connection;
var Server = require('mongodb').Server;
var BSON = require('mongodb').BSON;
var ObjectID = require('mongodb').ObjectID;
EmailProvider = function(host, port) {
this.db= new Db('localdb', new Server(host, port, {safe: false}, {auto_reconnect: true}, {}));
this.db.open(function(){});
};
EmailProvider.prototype.getCollection= function(callback) {
this.db.collection('emails', function(error, email_collection) {
if(error) callback(error);
else callback(null, email_collection);
});
};
//save new email
EmailProvider.prototype.save = function(emails, callback) {
this.getCollection(function(error, email_collection) {
if(error) callback(error)
else {
if(typeof(emails.address)=="undefined")
emails = [emails];
for(var i =0;i< emails.address;i++) {
email = emails[i];
email.created_at = new Date();
}
email_collection.insert(emails, function() {
callback(null, emails);
});
}
});
};
exports.EmailProvider = EmailProvider;
हाय! ऐसा लगता है कि कुछ संदर्भ गायब हैं। आपका मोंगोडीबी कनेक्शन कोड ठीक दिखता है, लेकिन ईमेलप्रोवाइडर की परिभाषा क्या है? – robert
@robert ठीक है, मैंने इसे और अधिक समझने योग्य बनाने के लिए संपादित किया है कि क्या हो रहा है। – Jryl
क्या मैं सही ढंग से पढ़ रहा हूं कि आपका ईमेल प्रदाता स्थानीयहोस्ट से कनेक्ट हो रहा है: 27017? क्या आप इसे अपने मोंगोलाब डेटाबेस से कनेक्ट करने की कोशिश कर रहे हैं? – robert