[英]How do I receive and use a JSON object on the client-side from the server (Node JS and Express)?
[英]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.