我目前正在做一个项目,在输入mongo db输入数据时出现了问题:
app.js
const path = require('path');
const express = require('express');
const app = express();
const getAdminPannel = require('./routes/pannelRoute');
const getView = require('./routes/viewRoutes');
app.set('view engine', 'pug');
app.set('views',path.join(__dirname,'views'));
app.use(express.static(path.join(__dirname,'public')));
app.use(express.json());
app.use(express.urlencoded({extended:true}));
app.use('/api/v1/services',getAdminPannel);
//Views routes
app.use('/',getView);
module.exports = app;
routes文件夹PannelRoute.js
const express = require('express');
const pannelController = require('../controller/pannelController');
const router = express.Router();
router.route('/create-services')
.post(pannelController.createPannelServices);
module.exports = router;
控制器文件夹盘控制器
exports.createPannelServices = async(req,res) =>{
try{
const createService = Service.create(req.body);
console.log(req.body)
res.status(201).json({
length:createService.lengnth,
status:"Success",
data:{
services:createService
}
});
}catch(err){
res.status(400).json({
status:'Fail',
message:'Invalid data request'
});
}
}
script.js文件,从输入sublit操作中获取数据:
import {createService} from './createService';
const createServices = document.querySelector('.createServiceForm');
if(createServices){
createServices.addEventListener('submit',(el)=>{
el.preventDefault();
const form = new FormData();
form.append('serviceName',document.getElementById('servicename_create').value);
form.append('serviceDescription',document.getElementById('serviceDescription').value);
createService(form)
})
}
createService.js脚本文件,我在其中使用axios使用api链接inser数据。
import "regenerator-runtime/runtime";
import axios from 'axios';
import { showAlert } from './alert';
export const createService = async(data)=>{
try{
const create = await axios({
method:'POST',
url:'http://127.0.0.1:5000/api/v1/services/create-services',
service:data
});
if(create.data.status === 'success'){
showAlert('success','Servicul a fost creeat!!!');
window.setTimeout(()=>{
location.assign('/');
}, 1500);
}
console.log(data);
}catch(err){
showAlert('error','A aparut o problema in procesul de creeare a servicului!!!');
}
}
问题是req.body不返回任何值,为空,并且还会出现错误
在createService.js
中,您不能正确地将数据传递给Axios。
您需要将其更改为:
const create = await axios({
method:'POST',
url:'http://127.0.0.1:5000/api/v1/services/create-services',
data:data
});
后端的req.body
对应于之前没有填充的data
字段。