0

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);
user730009
  • 313
  • 1
  • 5
  • 18

0 Answers0