У нас есть сервер, работающий на нашей виртуальной машине, и он успешно подключается к другой нашей виртуальной машине, на которой запущен экземпляр нашей базы данных mongo.
Но всякий раз, когда мы пытаемся выполнить запрос к базе данных или сохранить новый документ, запросы останутся навсегда, и мы даже не получим сообщение об ошибке. Мы хотели бы выяснить, почему это происходит, и решить ее, чтобы мы могли реально использовать нашу базу данных.
Однако мы можем отправлять сообщения и запросы из оболочки mongo в терминале.
наш сервер
//imports
var express = require('express'); // call Express for routing
var bodyParser = require('body-parser'); // call Body Parser to Parse JSON
var mongoose = require('mongoose'); // call Mongoose to make calls to our MondoDB
// define our app using express & bodyparser
var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// connect to MongoDB
var db = mongoose.connect('mongodb://10.0.0.6:27017');
//Router & Routes-------------------
var router = express.Router();
//Set up middleware logging
router.use(function(req, res, next) {
console.log('[REQUEST] ' + req.method + req.url); //Print request
next(); // Continue processing request
});
router.use('/users', require('./routes/Users'));
router.use('/vimconfigurations', require('./routes/VimConfigurations'));
router.use('/vms', require('./routes/Vms'));
router.use('/vimevents', require('./routes/VimEvents'));
router.get('/', function(req, res) {
res.json({ success: true, message: 'success' });
});
//server start
app.use('/api', router);
process.env.PORT = 8081;
app.listen(process.env.PORT);
console.log('[USAGE SERVER] Initialized on port ' + process.env.PORT + "...");
пример маршрута
var express = require('express');
var router = express.Router();
var Vm = require('../models/Vm');
// routes for /api/vms
router.route('/')
// Gets all vms
.get(function(req, res){
Vm.find(function(err, vms){
if (err) return res.send(err);
res.json(vms);
});
})
// Make a new Vm
.post(function(req, res){
var vm = new Vm();
vm.running = false;
vm.creationdate = new Date();
vm.configuration = configBasic;
vm.ownerCcId = req.body.ccId;
vm.save(function(err, vm){
if (err) return res.send(err);
res.json({success: true, message : 'VM successfully created!', id : vm._id});
});
});
module.exports = router;
пример модели
// server/models/vm.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var VMSchema = new Schema({
ownerCcId: String,
running: Boolean,
configuration: Object,
creationdate: Date
});
module.exports = mongoose.model('Vm', VMSchema);
Любая помощь будет высоко ценится, спасибо!