【发布时间】: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