2016-10-13 9 views
0

スーパーヒーローの名前とパワーをデータベースに保存する、この非常に単純なコードがあります。MongooseはNodeJsでdbに何も保存しません

すべての接続は正常に動作します。私がmongodを実行したとき、私は--dbpath C:/ nodeprojects/sankarit/dataを使用しました。私はさまざまなパスで50回のようにパスを変更しようとしました。

私のコードは、クライアント側からnimiとsupervoima(名前、超強勢)を送信し、それらをデータベースに追加しようとしますが、文字通りdbでは何も起こりません。私がconsole.log( "これはうまく動く")をsave関数に書き出すと、その動作が示されます。そして、もし私がコンソールログのスーパーヒーローが正常に動作するようです。ここで

は、クライアント側である:ここで

$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' }) {} 

だから私はデバッグし、プログラムが行うすべてのログを慰めるときそれは夢のように働くようです。私は5-10のようなMEANスタックチュートリアルを作成し、毎回データベースは正常に動作しました。これは、私が自分でコード全体を作成しようとしている最初の時です。私はこの一晩を解決しようとしましたが、私はどこにでも絶対に行きませんでした。

+0

を使用することをお忘れですか? – 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

関連する問題