简体   繁体   中英

Sending data on server by fetch

Can someone explain to me why after sending a request, server returns POST {} {} - I mean empty objects?

I don't know where this data is. Why did it dissapear?

在此处输入图片说明

I have no idea how to solve it...

index.js:

window.addEventListener("DOMContentLoaded", () => {
  const form = document.querySelector("form");

  form.addEventListener("submit", event => {
    console.log("włącza sie");

    event.preventDefault();

    const name = document.getElementById("name").value;
    const password = document.getElementById("password").value;

    fetch("http:localhost:3000/register", {
      method: "POST",
      body: JSON.stringify({ name, password })
    })
      .then(res => {
        console.log(res);
      })
      .catch(error => console.log(error));
  });
});

//server.js:

const http = require("http");
const app = require("./app");

const port = 3000;

const server = http.createServer(app);

server.listen(port, () => {
  console.log("server włączony");
});

//app.js

const loginRoute = require("./api/routes/loginRoute");
const registerRoute = require("./api/routes/registerRoute");
const verify = require("./autorization/verify");

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use("/", (req, res, next) => {
  console.log(req.method, req.query, req.body);
  next();
});

app.use("/", loginRoute);

app.use("/", registerRoute);

app.use(verify);

based from your screenshot, there's a CORS issue. You can overcome that using https://github.com/expressjs/cors middleware

var cors = require('cors');
app.use(cors());

or enable CORS for the specific route only

app.use('/', cors(), registerRoute);

registerRoute:

const express = require('express');
const router = express.Router();
const register = require('../../mongo/register');

router.post('/register',register);


module.exports = router;

register.js:

const mongo = require('./database');
const User = require('../api/patterns/user');


const register = (req,res)=>{

 const toSave = new User(req.body); 


 User.findOne({name: req.body.name},(err,name)=>{

  if(err) throw err;

  if(!name){


        toSave.save( (err)=> {

             if (err) throw err;
              console.log('user zapisany');

             });

   }else{
    console.log('juz taki istnieje');

  }

  });
};

app.js:

const loginRoute = require('./api/routes/loginRoute');
const registerRoute = require('./api/routes/registerRoute');
const verify = require('./autorization/verify');


var cors = require('cors');
app.use(cors());
app.use(bodyParser.json());


app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use('/', (req,res,next)=>{console.log(req.method, req.query, req.body); 
next();});

app.use('/', loginRoute);

app.use('/', registerRoute);

app.use(verify);






module.exports = app;

It still returns empty objects :(

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM