【问题标题】:How to send data into monogodb using postman如何使用邮递员将数据发送到mongodb
【发布时间】:2022-01-25 04:27:07
【问题描述】:

我正在尝试使用邮递员将数据发送到 mongodb 数据库。一切似乎都很好,但我遇到了错误。

我的代码如下所示。我试图遵循 MVC 模式。有点乱。希望我能得到解决方案。我用过快递生成器

这是 app.js 文件

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

// var indexRouter = require('./routes/index');
// var usersRouter = require('./routes/users');
const {
  createUserRoute,
  usersRouter,
  indexRouter
} = require('./routes');

// const createUserRoute = require('./routes/createuser-route');

require('./db_init');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');



// app.use('/', indexRouter);
// app.use('/users', usersRouter);
app.use('/adduser', createUserRoute);

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));



// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

这是数据库初始化器

const mongoose = require('mongoose');
const dbUrl = "mongodb://localhost:27017/payroll-system";

mongoose.connect(dbUrl, (err,success) => {
    if(err){
        console.log('Error connecting to database');
    }
    else{
        console.log('Connected to database');
    }
})

这是创建用户路由器

var express = require('express');
var router = express.Router();

// var UserModel = require('../models/user-model');

const {createUser} = require('../controller/createUser');

router.post('/', createUser);


// router.post('/', function (req, res, next) {
//     const user = new UserModel(req.body);
//     user.save((err, result) => {
//         if (err) {
//             res.json(err);
//         }
//         else {
//             res.json(result);
//         }
//     })
// });
module.exports= router;

它处理每个路由并将它们导出到 app.js

module.exports.createUserRoute = require('./createuser-route');
module.exports.indexRoute = require('./index');
module.exports.usersRoute = require('./users');

这是用户创建控制器

var express = require('express');
var router = express.Router();

var UserModel = require('../models/user-model');

function createUser(req,res,next){
    const user = new UserModel(req.body);
    user.save((err,result) => {
        if(err){
            res.json(err);
        }
        else{
            res.json(result);
        }
    })
}

module.exports = {createUser};

数据库模型是这样的

const mongoose = require('mongoose');

const employeeSchema = new mongoose.Schema({
   name:{
        type:String,
        required:true
   },
    email:{
        type:String,
        required:true,
        unique:true
    },
    // password:{
    //     type:String,
    //     required:true
    // },
    phone:{
        type:Number,
        required:true
    },
    address:{
        type: String,
        required: true
    },
    date_of_birth:{
        type:Date,
        // required:true
    },
    gross_salary:{
        type:Number,
        required:true
    },
    gender:{
        type:String,
        enum:['male','female','other']
    },
    position:{
        type: String,
        enum:['Board Member','Senior Developer', 'Junior Developer','Admin Officer','Project Manager','Intern','Staff']
    },
    bank:{
        type: String,
        required: true,
        enum:['Agriculture Bank','Bank of Kathmandu','Citizens Bank','Everest Bank','Nepal Investment Bank','Nepal SBI Bank','Nepal Union Bank','Standard Chartered Bank']
    },
    account_number:{
        type:Number,
        required:true
    },
    account_holder_name:{
        type:String,
        required:true
    },
    status:{
        type:String,
        enum:['active','inactive']
    },
    shift:{
        type:String,
        enum:['Full Time','Part Time', 'Hour Basis']
    },
    marital_status:{
        type:String,
        enum:['Married','Unmarried']
    }
});

const Employee = mongoose.model('Employee', employeeSchema);
module.exports = Employee;

【问题讨论】:

    标签: javascript express


    【解决方案1】:

    这是因为您的数据与您为员工定义的架构不匹配。 在 createUser 中,const user = new UserModel(req.body); req.body 是这种形式 [{}],它对您的 mongoose 模式失败。要么做req.body[0]要么省略[]。

    【讨论】:

      猜你喜欢
      • 2020-06-23
      • 1970-01-01
      • 2019-06-15
      • 2018-05-30
      • 2016-02-03
      • 2020-04-07
      • 2021-07-13
      • 2020-10-29
      • 2021-11-19
      相关资源
      最近更新 更多