Estaba familiarizado con MongodB para la operación CRUD. Aquí, estoy tratando de hacer una solicitud de publicación simple en el atlas de mongodB, pero quiero saber dónde cometí un error para la conexión y la publicación de datos en el atlas de MongodB.
Modelo.js
const mongoose = require("mongoose"); const Schema = mongoose.Schema; let quizSchema = new Schema({ title: { type: String, }, description: { type: Number, }, question: { type: String, }, }); const Quiz = mongoose.model("Quiz", quizSchema); module.exports = Quiz;índice.js
Estoy tratando de crear el nombre de la colección de base de datos "QuizDatabase" e insertarle los datos.
var express = require("express"); var bodyParser = require("body-parser"); const Quiz = require("./views/model/model"); var Request = require("request"); var app = express(); app.use(bodyParser.json()); const MongoClient = require("mongodb").MongoClient; const uri = "mongodb+srv://username:password@cluster0.iom1t.mongodb.net/QuizDatabase?retryWrites=true&w=majority"; const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true, }); mongoose.connect(uri); var server = app.listen(process.env.PORT || 8080, function () { var port = server.address().port; console.log("App now running on port", port); }); app.post("/new/", function (req, res) { Quiz.collection("QuizDatabase").insertMany(req.body, function (err, doc) { if (err) { handleError(res, err.message, "Failed to create new quiz."); } else { res.status(201).send(JSON.stringify(body)); } }); }); function handleError(res, reason, message, code) { console.log("ERROR: " + reason); res.status(code || 500).json({ error: message }); }No tiene que usar mongo client si ya está usando mongoose. En el archivo index.js solo importa el modelo
const Quiz = require("./model"); Y ya está usando mongoose para conectarse a db cuando escribe mongoose.connect(uri); No tiene que usar client.connect() nuevamente.
Consulta para insertar -
Quiz.insertMany(req.body);Su archivo de índice debería verse así:
const Quiz = require("./views/model/model"); var Request = require("request"); var app = express(); app.use(bodyParser.json()); const uri = "mongodb+srv://username:password@cluster0.iom1t.mongodb.net/QuizDatabase?retryWrites=true&w=majority"; mongoose.connect(uri); var server = app.listen(process.env.PORT || 8080, function () { var port = server.address().port; console.log("App now running on port", port); }); app.post("/new/", function (req, res) { Quiz.insertMany(req.body, function (err, doc) { if (err) { handleError(res, err.message, "Failed to create new quiz."); } else { res.status(201).send(JSON.stringify(body)); } }); }); function handleError(res, reason, message, code) { console.log("ERROR: " + reason); res.status(code || 500).json({ error: message }); }