dimanche 5 avril 2015

NodeJS with Restify: One of the modules is not working

I am creating a RESTful API using NodeJS and Restify. I have the following folder structure:



main.js modules
./modules:
continents countries
./modules/continents:
controller.js model.js
./modules/countries:
controller.js model.js


Unfortunately, the countries module is not working. Here are my code:


I get a blank array.



{
error: false,
data: [ ]
}


main.js



var restify = require('restify');
var mongoose = require('mongoose');


mongoose.connect('mongodb://localhost/app');


var controllers = {};
controllers.continents = require('./modules/continents/controller');
controllers.countries = require('./modules/countries/controller');


var server = restify.createServer();

server
.use(restify.fullResponse())
.use(restify.bodyParser());

// Routes
server.get('/api/continents', controllers.continents.getContinents);
server.get('/api/:continent/countries', controllers.countries.getCountries);


server.listen(3000, function() {
console.log('%s listening at %s', server.name, server.url);
});


countries > controller.js



var mongoose = require('mongoose');
var model = require('./model');


var Countries = mongoose.model('Countries');


exports.getCountries = function(req, res, next) {
console.log("Countries");
Countries.find({link: req.params.continent}, function(err, countries) {
console.log(req.params.continent);
console.log(countries);
if (err) {
res.status(500);
res.json({
error: true,
data: 'Error occured: ' + err
});
} else {
if (countries) {
res.json({
error: false,
data: countries
});
} else {
res.json({
error: true,
data: "Countries for " + req.params.continent + " are not found."
});
}
}
});
};


countries > model.js



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


var CountriesSchema = new Schema({
name: String,
imgSrc: String
});


mongoose.model('Countries', CountriesSchema);

Aucun commentaire:

Enregistrer un commentaire