我有我已經在端口3000和4000 創建一個數據庫中的Web服務器的創建,並有3個集2層的Web服務器..兩臺服務器可以訪問一個共同的MongoDB數據庫
顯示DBS 當地0.000 GB sensor_db 0.000GB 使用sensor_db 切換到DB sensor_db 秀收藏 傳感器 templategroups 模板
第二臺服務器是否可以訪問創建的數據庫?如果是的話,我無法訪問集合..是否有任何語法呢?
1日服務器:
var express = require('express');
var app= express();
var path = require('path');
var bodyParser= require('body-parser');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/sensor_db');
var Schema = mongoose.Schema;
var sensorSchema = new Schema({
value:{ type:Number, default:0},
format:{type:String, default:"default"},
id:{type:Number,required:true,unique:true},
description:{type:String},
type:{type:String},
groupId:{type:Number},
users:{type:Array,default:[]},
admin:{type:String,default:'Undefined'},
status:{type:String,default:'Undefined'},
owner:{type:String,default:'Undefined'},
templateId:{type:Number}
});
var Sensor = mongoose.model('Sensor',sensorSchema);
app.get('/sensorlist',function(req,res) {
console.log("I recieved a GET /sensorlist request");
Sensor.find(function(err,data){
if (err) return console.error(err);
console.log(data);
res.json(data)
});
});
app.post('/check/health',function(req,res){
socket.emit('data', 'I need your health status', function ack(data) {
console.log('data emit was acknowledged by Monitoring Server:', data);
return res.json(data);
});
});
第二個服務器:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var express = require('express');
io.on('connection', function(socket){
console.log('connection received from Provisioning');
// To get messages from Provisioning server
socket.on('data', function(data, ack) {
console.log('Message from provision is : ' + ': ' + data);
ack('here is your data - 1111');
console.log("Trying to access the Sensor_DB Database");
Sensor.find(function(err,data){
if(err) return console.error(err);
console.log(data);
//res.json(data);
});
});
});
server.listen(4000, function(){
console.log('socket.io server listening on *:4000');
});
我得到錯誤 - 傳感器沒有定義
,不勝感謝 傑西
我試圖dispay集合一旦它連接到數據庫但收到此錯誤消息:無法完成d屬性'hasListCollectionsCommand'爲空
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/sensor_db') ;
console.log("successfully connected to the database");
//mongoose.connection.db
mongoose.connection.db.listCollections().toArray(function(err, names) {
if (err) {
console.log(err);
}
else {
names.forEach(function(e,i,a) {
mongoose.connection.db.dropCollection(e.name);
console.log("--->>", e.name);
});
}
});
許多客戶端可以同時訪問mongodb數據庫。兩個服務器只是兩個客戶端mongodb ..它應該能夠訪問.. –
http://stackoverflow.com/questions/28593616/how-do-you-access-a-mongodb-database-from-two-openshift -apps這可以幫助你,我相信 –
感謝您的鏈接,但那與OpenShift有關? –