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);