簡體   English   中英

如何在快遞服務器中接收 json

[英]How can I receive a json in express server

我需要從我的 React 前面收到 JSON。 但是 JSON 以一種奇怪的方式出現在我面前(帶有字符串數據的 object),我不知道如何將其返回到再次鍵入 object。

我送這個。

const data = {
        email: 'emailc@email.com',
        password: 'test'
    }
    const options = {
        method: 'POST',
        body: JSON.stringify(data),
        mode: 'no-cors',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        }
    }

    const onsubmit = (e) => {
        //evitamos que se haga la peticion en automatico
        e.preventDefault();
        fetch('http://localhost:3001/user/signin',options)
        .then(res => res.json())
        .catch(error => console.error('Error:', error))
        .then(response => console.log('Success:', response));
        console.log('send on submit');
    }

我在快遞服務器上得到了這個:

[Object: null prototype] {
  '{"email":"emailc@email.com","password":"test"}': ''
}

我的服務器是這樣配置的:

const express = require('express');
const app = express();
const morgan = require('morgan');
const cors = require('cors');
const {mongoose} = require('./src/database/connection')

const Parser = require("body-parser").urlencoded({ extended: false });

//config
app.set('port', process.env.PORT || 3001);


//middlewares
app.use(morgan('dev'));
app.use(Parser);
app.use(cors()); //accepts connection from all directions

//Routes
app.use(require('./src/test'));
app.use(require('./src/routes/users'));

//Server
app.listen(app.get('port'), (req, res) => {
    console.log(`Server on port ${app.get('port')}`);
})

我想我錯誤地配置了正文解析器,請幫忙,這是我的第一個 API。

 'Content-Type': 'application/x-www-form-urlencoded'

如果您告訴服務器您正在發送表單編碼數據,那么它將嘗試解析您發送的表單編碼數據。

不要撒謊。

如果您要發送 JSON,請這樣說:

'Content-Type': 'application/json'

 const Parser = require("body-parser").urlencoded({ extended: false });

您還需要一個支持 JSON 的正文解析器。

const Parser = require("body-parser").json();

但是 Express 有一個內置的主體解析器,並且以大寫字母開頭的變量名傳統上是為構造函數/類保留的。

const parser = express.json();

在旁邊:

 mode: 'no-cors'

如果您正在發出跨域請求,那么它將破壞它。 如果您正在發出同源請求,那么這將無濟於事。

去掉它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM