/ / Express Mongoose не записва данни - javascript, node.js, mongodb, express, mongoose

Express Mongoose не записва данни - javascript, node.js, mongodb, express, mongoose

Имам проблеми със запазването на обект, който направих в Express nodejs, използвайки мангуста.

Той винаги казва, че е запазен, но никога не може да намери обекта, дори ако вляза в сървъра и се опитам да го получа сам.

Експресен маршрут за спасяване на mongodb:

router.post("/share", function(req, res, next){
//console.log("Post Request Made", req);

//switch to be inputed as parameters of the request
//save share
var share = new Shares({ link: req.body.link, description: req.body.description });
//  var share = new Shares({ req.data.link, req.data.description });
console.log("request body", req.body);
console.log("to be added", share);
//save to database
share.save(function(err, share){
if(err){
console.log(err);
} else {
console.log("the object was saved" , share);
var id  = share._id;
res.send(id);
}
});
});

Конзолен дневник:

request body { link: "test", description: "test" }
to be added { link: "test",
description: "test",
_id: 5840b0393181d4000f652cba,
clicks: 0 }
the object was saved { __v: 0,
link: "test",
description: "test",
_id: 5840b0393181d4000f652cba,
clicks: 0 }
POST /share 200 73.618 ms - 26
This is the link page with id:  5840b0393181d4000f652cba
found []
GET /fluff/link/5840b0393181d4000f652cba 200 20.387 ms - 266

Конфигурация:

var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://mongo/shares");
require("./models/Shares");

Отговори:

0 за отговор № 1

Решен проблемът. Проблемът ми беше, че съм нуб mongo черупка и монгод изобщо.

Всъщност спасявах правилно, но начина, по който търсех в mongo че обвивката е грешна. Не осъзнавах всеки път твоя в. \ T mongo черупката започва в test база данни, ако работите mongo без аргументи.

Първото нещо е да въведете базата данни, в която искате да бъдете:

    `mongo [database_name]`

след това проверете за всички документи, като:

   `db.collections.count()`
`db.collections.find()`

Истинският ми проблем беше, че моят Shares.findById() беше погрешно и трябваше да потърся подходящите параметри.

това е, което работа версия изглежда сега:

  Shares.findById(id.toString(), function(err, share){
if(err){
console.log("error", err);
} else {
console.log("found", share);
}
});