2016-10-13 30 views
0

我有這個非常簡單的代碼,存儲超級英雄的名稱和權力,數據庫。Mongoose不保存任何東西到db與NodeJs

所有連接正常工作。當我運行mongod時,我使用了--dbpath C:/ nodeprojects/sankarit/data。我試過用不同的路徑改變路徑50次。

所以我的代碼從客戶端發送nimi和supervoima(名字,超級大國),它試圖將它們添加到數據庫,但實際上沒有發生在數據庫中。當我寫保存函數console.log(「耶」它工作),它說它的工作。如果我控制檯登錄超級英雄它似乎正常工作。

下面是客戶端:

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

這裏是我的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); 

這裏是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!"); 
    } 
}); 

}; 

而且當我嘗試的console.log( req.body);它工作正常。

這裏是模式(sankarit.js):

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

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

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

當我運行該程序,貓鼬調試的事情說:

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

所以當我調試和控制檯登錄所有的程序沒有它似乎像夢一樣工作。我已經制作了這些MEAN堆棧教程,例如5-10和每次數據庫正常工作。這是我第一次嘗試自己製作完整的代碼。我試圖解決整個晚上,但我沒有得到任何地方。

+0

你是什麼意思「什麼也沒有發生在DB」? – Paul

回答

1

你忘了使用架構

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

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

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

啊,晚上好。謝謝! – Frostbch

相關問題