J'ai essayé plusieurs choses et je ne peux pas comprendre ce que je fais mal. Je suis nouveau aux services de backend et je ne suis pas sûr où commencer à chercher le problème.MongoDB et appel express ne fonctionne pas
app.js
// SERVER SETUP
var express = require ('express');
var bodyParser = require ('body-parser');
var app = express();
var router = express.Router();
var routes = require('./routes');
var transactions = require('./routes/routes');
app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
//API ROUTES
router.use(function (req, res, next){
console.log('Something is happening. . .');
next();
});
// REGISTER ROUTES
app.use('/', router);
app.get('/transactions', transactions.getRecords);
// START THE SERVER
app.listen(port);
console.log('Server is running on port ' + port);
model.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error);
db.once('open', function (callback){
console.log('Mongo Connected');
});
var Schema = mongoose.Schema;
var BankSchema = new Schema({
_id: String,
date: Date,
account: String,
location: String,
amount: Number,
type: String,
reason: {
type: String,
explanation: String
}
});
exports.transactions = mongoose.model('BudgetApp', BankSchema, 'transactions');
routes.js
var useModel = require('./model');
var bankData = useModel.transactions;
var transactions = function (callback){
var records = []
bankData.aggregate([
{$match: {type:"debit"} },
{$group:{
_id:{
month: {$month: "$date"},
year:{$year: "$date"}
},
expense: {
$sum:"$amount"
}
}
},
{$project: {
date: "$_id",
spent: "$expense"
}}
], function (err, data){
if (err){ console.log(err);}
console.log(data);
records.push(data);
});
callback(records);
};//transactions
exports.getRecords = function (req, res){
transactions(function (err, transaction){
if (err){console.log(err);}
res.json(transaction);
});
};
Quand je lance le serveur de nœud, le journal de la console uniquement retours et tableau vide, sans erreurs. Je ne sais pas ce que je fais de mal.
Vous avez mentionné le localhost. Mais avez-vous configuré le port avec l'URL localhost? Sinon, essayez de mettre votre numéro de port sur lequel votre serveur mongo est en cours d'exécution. S'il vous plaît laissez-moi savoir si cela a aidé ou non. :) – Abhishek
Je ne suis même pas sûr si j'ai l'url correcte ou comment configurer l'url pour mongodb – Obsanity
Si vous venez d'installer Mongo db suivant leur tutoriel, il suffit de remplacer "mongoose.connect ('mongodb: // localhost/test ') "avec" mongoose.connect (' mongodb: // localhost: 27017/test ') ". Essayez-le et faites le moi savoir. – Abhishek