[英]node and remote mongohq connection
我在連接到mongohq數據庫時遇到重大問題。 我正在按照本教程進行操作,但是將本地mongo DB替換為遠程mongoHQ數據庫: http ://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb /
wines.js
var mongo = require('mongodb');
Db = mongo.Db;
BSON = mongo.BSONPure;
con = null;
server = new Server('troup.mongohq.com', 'mongo_port', {auto_reconnect: true});
DBCon = new Db('dev', server, {safe: false});
DBCon.open(function(err, db) {
if(!err) {
db.authenticate('username', 'password', function(err){
if(!err) con = db;
})
}
})
// exports.findById = function(req, res) {
// var id = req.params.id;
// console.log('Retrieving wine: ' + id);
// db.collection('wines', function(err, collection) {
// collection.findOne({'_id':new BSON.ObjectID(id)}, function(err, item) {
// res.send(item);
// });
// });
// };
server.js
var express = require('express'),
path = require('path'),
http = require('http'),
wine = require('./routes/wines');
var app = express();
app.configure(function () {
app.set('port', process.env.PORT || 3000);
app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */
app.use(express.bodyParser()),
app.use(express.static(path.join(__dirname, 'public')));
});
app.get('/wines', wine.findAll);
app.get('/wines/:id', wine.findById);
app.post('/wines', wine.addWine);
app.put('/wines/:id', wine.updateWine);
app.delete('/wines/:id', wine.deleteWine);
http.createServer(app).listen(app.get('port'), function () {
console.log("Express server listening on port " + app.get('port'));
});
嘗試啟動節點時收到錯誤消息:
/Sites/nodecellar/routes/wines.js:31
db.open(function(err, db) {
^
ReferenceError: db is not defined
at Object.<anonymous> (/Sites/nodecellar/routes/wines.js:31:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Sites/nodecellar/server.js:4:12)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
有什么建議可以解決這里的問題嗎?
您的問題幾乎可以肯定與服務器連接設置有關。 本教程在更新驅動程序之前使接口在所有平台上保持一致,並且可接受的方法是使用MongoClient類進行設置。
請查看有關URL連接格式的注釋,因為您可能需要傳遞憑據和數據庫才能連接到那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.