问题描述
我所有其他路线都工作正常,但是当我尝试从数据库中获取雇员无效时,我尝试了另一种方法来获取我的雇员,即在app.js中使用app.get方法,它起作用了,但是当我尝试将其与控制器一起使用并进行路由,它甚至都不会到达路由!请帮忙!谢谢!
app.js
const express = require('express')
const app = express();
const appUserRoute = require('./routes/appuserRoute')
const employeeRoute = require('./routes/employeeRoute')
require('./db/mongoose')
app.use(express.json())
if(process.env.NODE_ENV!=="production"){
app.use(morgan('dev'))
}
app.use('/appusers',appUserRoute)
app.use('/appusers/employees',employeeRoute)
//start server
app.listen(PORT,console.log(`Server running in ${process.env.NODE_ENV } mode on port ${PORT}`.green)
)
employeeRoute.js
const express = require('express')
const router = express.Router();
const {getEmployees,getEmployee,createEmployee,updateEmployee,deleteEmployee } = require('../controllers/employeeController')
router
.route('/')
.get(getEmployees)
.post(createEmployee)
router
.route('/:id')
.get(getEmployee)
.patch(updateEmployee)
.delete(deleteEmployee)
module.exports = router
employeeController.js
const Employee = require('../Models/employee')
exports.getEmployees = async (req,res) => {
try {
const employees = await Employee.find({})
if(!employees){
res.status(404).json({
message:'Not Data Found!'
})
}
res.status(200).json({
message:'Data Found!',data:employees
})
} catch (e) {
res.status(500).send()
}
}
mongoose.js
const mongoose = require('mongoose')
mongoose.connect('mongodb://127.0.0.1:27017/MagicInventory-api',{
useNewUrlParser: true,useCreateIndex: true,useFindAndModify: false,useUnifiedTopology: true
}).then(() => console.log("Connected".green))
.catch(err => console.log(err.red));
员工模型
const mongoose = require('mongoose');
var validator = require('validator');
const employeeSchema = new mongoose.Schema({
firstName: {
type: String,required: [true,'please specify First Name'],trim: true,maxlength: [20,'FirstName cannot be more than 20 characters!']
},lastName: {
type: String,// maxlength: [20,'lastName cannot be more than 20 characters!']
},email: {
type: String,lowercase: true,// unique: true,// required: [true,'Email address is required'],// validate: {
// validator: validator.isEmail,// message: 'invalid email',// }
},maritalStatus: {
type: String,// required:[true,'Choose the Gender']
},dateOfBirth: {
type: Date,'Date of Birth is required!']
},profile: {
type: String,lowercase: true
},contactDetails: {
adressLine1: {
type: String
},adressLine2: {
type: String
},city: {
type: String
},state: {
type: String
},zipCode: {
type: Number
},country: {
type: String
},contact: {
type: Number,match: [
/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/,'Phone number is not valid!'
]
},},bankDetails:{
bankName:{
type:String,accountNumber:{
type:Number
},accountName:{
type:String
},ifscCode:{
type:String
}
},dateOfJoining:{
type: Date,createdAt: {
type: Date,default: Date.now
},});
module.exports = mongoose.model('Employee',employeeSchema)
解决方法
问题解决了!我在写路线时弄错了! 实际路线应为:-app.use('/ employees',employeeRoute);