Module.create не принимать данные из ввода, req.body пуст - PullRequest
0 голосов
/ 07 августа 2020

Я сейчас работаю над проектом, и возникла проблема с вводом входных данных mon go 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;

папка маршрутов 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;

папка контроллера pannelController

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'
        });
    }
}

скрипт. js файл, в котором я беру данные из входного сублимированного действия:

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 файл сценария, в котором я использую ax ios для вставки данных с помощью ссылки api.

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 не возвращает пустое значение, и эта ошибка также появляется

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Попробуйте axios.post в createService.js

const create = await axios.post(
   'http://127.0.0.1:5000/api/v1/services/create-services',
   data,
   { headers: data.getHeaders() }
);

//print body response
console.log(create.data);

0 голосов
/ 07 августа 2020

В createService.js вы неправильно передаете данные в ax ios.

Вы захотите изменить его на это:

const create = await axios({
  method:'POST',
  url:'http://127.0.0.1:5000/api/v1/services/create-services',
  data:data
});

req.body on бэкэнд соответствует полю data, которое вы раньше не заполняли.

...