2017-08-10 39 views
0

我正在關注Jose Annunziato的YouTube教程。我創建了我的server.js併爲我的數據庫連接進行了所有必需的設置和配置。現在,當我從表單向服務器發佈某些內容時:它顯示數據已成功發送到服務器,但是當我到mongo控制檯來驗證數據是否已收到並且數據庫是否已創建時。我運行db它說測試我運行show dbs,在那裏我看不到我的新數據庫。我不確定實際問題是什麼,因爲我在教程中做了Jose所說的一切。mongodb:在插入數據後,數據庫沒有顯示在show dbs中

Server.js

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

var mongoose = require('mongoose'); 

mongoose.connect('mongodb://localhost/blogfall2016'); 

var PostSchema = mongoose.Schema({ 
    title: {type: String, required: true}, 
    body: String, 
    tag: {type: String, enum:['POLITICS', 'ECONOMY', 'EDUCATION']}, 
    posted: {type: Date, default: Date.now}, 
}); 

var PostModel = mongoose.model('PostModel', PostSchema) 
// GET /style.css etc 
app.use(express.static(__dirname + '/public')); 
var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ extended: true })); 

app.post("/api/blogpost", CreatePost); 

function CreatePost(req, res) { 
    var post = req.body; 
    console.log(post); 
    PostModel.create(post); 
    res.json(post); 

} 


app.listen(3000); 

回答

0

而不是低於線

mongoose.connect('mongodb://localhost/blogfall2016'); 

試試這一個,以確保數據庫創建成功第一, 然後做你的操作

mongoose.connect(url, function(err, db) { 
    if (err) throw err; 
    console.log("Database created!"); 
    db.close(); 
}); 
+0

url是什麼意思? – Sami

+0

var url ='mongodb:// localhost/blogfall2016'; –

+0

http://take.ms/AGodw – Sami

1

如果你的模式和你想插入的數據是匹配的,那麼它應該工作。

請嘗試以下代碼。而不是PostModel.create(post);

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

var mongoose = require('mongoose'); 

mongoose.connect('mongodb://127.0.0.1:27017/nnnnnn', function (err) { 
    if (!err) { 
     console.log('connection successful'); 
    } else { 
     console.log(err) 
    } 
}); 

var PostSchema = mongoose.Schema({ 
    title: { type: String, required: true }, 
    body: String, 
    tag: { type: String, enum: ['POLITICS', 'ECONOMY', 'EDUCATION'] }, 
    posted: { type: Date, default: Date.now }, 
}); 

var PostModel = mongoose.model('PostModel', PostSchema) 
// GET /style.css etc 
app.use(express.static(__dirname + '/public')); 
var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ extended: true })); 

app.post("/api/blogpost", CreatePost); 

function CreatePost(req, res) { 
    var post = req.body; 
    console.log(post); 
    // static data 
    var post = { 
     title: 'asdfasdf', 
     body: 'asdfasdfasdfasdf', 
     tag: 'POLITICS', 
     posted: new Date() 
    } 
    var postModel = new PostModel(post); 

    postModel.save(function (err, data) { 
     if (err) { 
      console.log('Error', err); 
     } else { 
      console.log('data inserted'); 
     } 
    }); 


    res.json(post); 

} 


app.listen(3000); 
+0

http://take.ms/LFmG6這裏的結果是 – Sami

+0

這個錯誤是由於模式不匹配造成的。檢查你的數據即post和schema是否應該匹配。並控制你的帖子並回復正在保存的內容。 – navjotdhanawat

+0

您可以在我的問題中看到架構,我發佈的數據僅爲標題和正文。 Sami

相關問題