0

I have this very simple code that stores superhero name and power to database.

All connections work normally. When i ran mongod i used --dbpath C:/nodeprojects/sankarit/data. I have tried change the path like 50 times with different paths.

So my code sends nimi and supervoima (name, superpower) from client side and it tries to add them to database but literally nothing happens in db. When i write console.log("yay it works") on save function, it says that its working. And if i console log superhero it seems to work normally.

Here is client side:

  $http.post("api/juttu", {nimi: "besthero", supervoima: "whiskey"}).success(function(response){
    console.log(response.data);
}).error(function(){
    console.log("Error")
})

Here is my server.js:

 var express = require('express');
var path = require('path');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.set('debug', true);

// SANKARI SCHEMA
var Sankari = require('./app/models/sankarit');

// CONTROLLERIT
var testCtrl = require('./server/testCtrl');

app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
app.use('/public', express.static(__dirname + '/public'));


// DB conn

// I have tried with /test, /heros, /sankariKanta, /sankarit
mongoose.connect('mongodb://127.0.0.1:27017/test');

mongoose.connection.once('connected', function() {
    console.log("Connected to database")
});

//PORTTI
var port = process.env.PORT || 8080;

// ROUTER
var router = express.Router();


app.get('/', function(req, res) {
    res.sendFile('index.html', {root: __dirname});
});

app.post("/api/juttu", testCtrl.juttu);


app.listen(port);

Here is the testCtrl:

var Sankari = require("../app/models/sankarit");

module.exports.juttu = function (req, res){

// Tried also var uusiSankari = new Sankari(req.body);
var uusiSankari = new Sankari();
uusiSankari.nimi = req.body.nimi;
uusiSankari.supervoima = req.body.supervoima;

uusiSankari.save(function(err){
   if(err){
       console.log(err);
   } else{
       // This is always showing up
       console.log("This is working!");
   }
});

};

Also when i try console.log(req.body); It is working correctly.

Here is schema(sankarit.js):

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

var SankariSchema = ({
    nimi: String,
    supervoima: String
});

module.exports = mongoose.model('Sankari', SankariSchema);

When i run the program, the mongoose debug thing says:

Mongoose: sankaris.insert({ __v: 0, _id:    ObjectId("57ff0a649dbf169c15000001"), nimi: 'besthero', s
upervoima: 'whiskey' }) {}

So when i debug and console log everything the program does it seems to work like dream. I have made these MEAN stack tutorials like 5-10 and everytime database worked normally. This is first time i'm trying to make whole code by myself. I tried solve this whole night but i didn't get absolutely anywhere.

1
  • what do you mean "nothing happens on the db"? Commented Oct 13, 2016 at 5:06

1 Answer 1

1

You forgot to use the Schema

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

var SankariSchema = Schema({
    nimi: String,
    supervoima: String
});

module.exports = mongoose.model('Sankari', SankariSchema);
Sign up to request clarification or add additional context in comments.

1 Comment

Ahh, night well spent. Thank you!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.