Node.JS Express 4 - Mongoose Doesn't Save Data

I am trying to save data in MongoDB with Mongoose with Express.JS 4 and Bluebird .

I did like this:

bin / www

var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');

.......
.......

db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function()
{// successfully connected!
    console.log("Successfully Connected to Mongo-DB");
});

And having received it in the console -

Successfully Connected to Mongo-DB` - So, MongoDB connected successfully

models /post.js

var mongoose = require('mongoose');

var postSchema = new mongoose.Schema({
    created_by: String,     //should be changed to ObjectId, ref "User"
    created_at: {type: Date, default: Date.now},
    text: String
});

module.exports = mongoose.model('Post', postSchema);

app.js

var Post_Data = require("./models/post");
....
....
router.get('/', function(req, res, next)
{
    var Post = mongoose.model("Post");

    var post    =   new Post({
                            created_by: ""+Math.random()
                        });

    console.log( Post.create(post) );


    res.render(
                'index',
                {
                    title       :   'Express',
                    site_name   :   'Our Site',
                    layout      :   'templates/layout'
                }
            );
});

And after that I get this in the console -

Promise {
  _bitField: 0,
  _fulfillmentHandler0: undefined,
  _rejectionHandler0: undefined,
  _promise0: undefined,
  _receiver0: undefined }

But nothing is saved , the evidence for this is

I find it -

enter image description here

After using MongoBooster .

Update -

My DB configuration is as follows:

"MONGO_URI": "mongodb://localhost:27017/express_test",
"MONGO_OPTIONS": {
                    "db": { "safe": true },
                    "name":"express_test"
                }

So can anyone help, why is he not saving anything?

Thanks in advance for your help.

+4
source share
5

.create() new Model .save(). .create Model . . Mongoose Models .

Mongoose - , , , . .then(), , .

, - . .catch() .

Post.create({ created_by: ""+Math.random() })
.then(function (result) {
  console.log('Saved' result)
})
.catch(function (err) {
  console.error('Oh No', err)
})

(, Mongoose docco), promises, bluebird promises, .

+2

:

var myPage = new LandingPage({
  user:req.user,
  slug: req.body.slug,
}).save(function(err,savedModel){
  if(!err){
    console.log(savedModel);
  }
});
+1

app.js

var Post_Data = require("./models/post"); // <-- Post_Data model never used
....
....

Post

var Post = mongoose.model("Post"); // <-- different model

var post    =   new Post({
                        created_by: ""+Math.random()
                    });

. app.js, save() :

var Post = require("./models/post"); // <-- import correct Post model
....
....
router.get('/', function(req, res, next) {
    var post = new Post({ created_by: ""+Math.random() });
    post.save().then(function(post) {
        console.log(post); // <-- newly created post
        res.render('index', {
            title: 'Express',
            site_name: 'Our Site',
            layout: 'templates/layout'
        });
    })
    .catch(function(err) {
        console.error('Oopsy', err);
    });
});
+1

, .

var Post_Data = require("./models/post");

new Post_Data var Post = mongoose.model("Post");, module.exports = mongoose.model('Post', postSchema);

:

var Post_Data = require("./models/post");
router.get('/', function(req, res, next)
{
    var post = new Post_Data({created_by: ""+Math.random()});

    post.save(function(error, data) {
      if(error) {
         return res.status(500).send({error: 'Error occurred during create post'});
      }
      return res.render('index',{
          title       :   'Express',
          site_name   :   'Our Site',
          layout      :   'templates/layout'
      });
   });
});
+1

, , , new Post(values), post.save(cb);, Post.create(post); , but I'm thinking that the underlying issue (though this isn't easy to be certain of based on the code you're showing) is that you're connecting with the MongoDB driver, rather than mongoose itself. Your db` , , .

, , mongoose.connect mongoose.createConnection, Mongoose , db . mongoose, , , .

0

Source: https://habr.com/ru/post/1650621/


All Articles