嗨,当我尝试保存在mongoDB中时,没有数据被保存

我在应用程序中添加了更多代码,以更好地报告该错误。问题是:在我创建的能够记录在数据库中的代码中,为什么它不起作用?我究竟做错了什么?

我的模型是:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;


const pacientesSchema = new Schema({
    nombre: {
        type: String,
        trim: true,
    },
    propietario: {
        type: String,
        trim: true
    },
    fecha: {
        type: String,
        trim: true
    },
    telefono: {
        type: String,
        trim: true
    },
    hora: {
        type: String,
        trim: true
    },
    sintomas: {
        type: String,
        trim: true
    }
});

module.exports = mongoose.model('Paciente', pacientesSchema);


我的控制器:

>     exports.nuevoCliente = async (req, res, next) => {
>         // console.log(req.body);
>
>         // Crear Objeto de paciente con datos de req.body
>         const paciente = new Paciente(req.body);
>         try {
>             await paciente.save();
>             res.json({ mensaje : 'El cliente se agregó correctamente'});
>             // console.log(paciente);
>
>         } catch (error) {
>             console.log(error);
>             next();
>         }
>     }


在Stennie和Kris的善意建议下,我进行了此更改,但它不起作用,我还能尝试什么?我想念什么???

exports.nuevoCliente = async (req, res, next) => {
    // console.log(req.body);

    // Crear Objeto de paciente con datos de req.body
    const paciente = new Paciente(req.body);

    try {
        await paciente.save({
            nombre: req.body.nombre,
            propietario: req.body.propietario,
            fecha: req.body.fecha,
            telefono: req.body.telefono,
            hora: req.body.hora,
            sintomas: req.body.sintomas
        });
        res.json({ mensaje : 'El cliente se agregó correctamente'});
        // console.log(paciente);

    } catch (error) {
        console.log(error);
        next();
    }
}


我的主要指数:

const express = require('express');
const mongoose = require('mongoose');
const routes = require('./routes');
const bodyParser = require('body-parser');

// Crear el servidor
const app = express();


// Conectar con MongoDB
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/veterinaria', {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useFindAndModify: false
});

// Habilitar el body-parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

// Habilitar Routing
app.use('/', routes())


// Puerto y Arrancar
app.listen(4000, () => {
    console.log('Servidor funcionando')
})


谢谢大家

编辑:大家好,我已经有了解决方案,将罗盘与Atlas连接时出现链接故障。
我使用的链接允许我连接并创建数据库和集合,但不允许将数据放入集合中。这是指南针为我提供的链接:

mongodb+srv://<username>:<password>@cluster0-srtud.mongodb.net/test


这是正确的代码:

mongodb://localhost:27017/?readPreference=primary&appname=MongoDB%20Compass&ssl=false


初学者的失败是不知道那不是正确的链接

谢谢大家

最佳答案

如果您只想向现有数据库添加一个条目,则可以使用

db.COLLECTION_NAME.insert({})


如果您不知道如何添加数据库或集合,则可以在此处找到一些有用的示例:https://www.tutorialspoint.com/mongodb/mongodb_insert_document.htm

编辑:
您需要先在控制器中导入模型

const Pacientes = require('../models/Pacientes.js');

关于javascript - 无法在mongoDB中编写:无法在mongoDB中编写:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60243357/

10-11 11:33