首页 > 解决方案 > React、Express 和节点 js 发布请求不起作用

问题描述

我有一个问题,代码实际上服务器没有接收 JSON 或接收 JSON 作为文本 .................... ………………………………………………………………………………………………………………………………………… ..................................................... …………………………………………………………………………………………………………………………………… .....................................

应用程序.js:

const config = require("config");
const express = require('express')
const bodyParser = require('body-parser');
const app = express()

app.use(bodyParser.json()) //express.json was tried
app.use(bodyParser.text()) // if do not using this json null

app.use('/api/auth',require("./routes/auth.route"))

auth.route.js

const {Router} = require("express");
const config = require("config");

const bcrypt = require("bcrypt");
const jwt = require("jsonwebtoken");
const {body,validationResult} = require("express-validator");

const User = require("../models/User");
const router = Router();

//api / auth/register

    router.post(
        '/register',
        [
            body("email",'Wrong Email').notEmpty().isEmail(),
         //   check('password','Min Char count is 6, Password incorrect').isLength({min:6})
        ],
        async (req,res)=>{
            console.log("body",req.body)
            console.log("email",req.body['email'])
            req.body = JSON.parse(req.body);
            console.log("body",req.body)
            console.log("email",req.body['email'])
    
    
            const validationErrors = validationResult(req);
    
            console.log(validationErrors.array())
            if(!validationErrors.isEmpty())
                return res.status(401).json({arguments: validationErrors.array(),type:"wrongInputData"});
            console.log(2) 
    })

和客户:

import {useState, useCallback} from 'react';
const urlStart = "http://localhost:5000";


export const useHttp = () =>{
    const [loadings,setLoading] = useState(false);
    const [setError] = useState(null);

    const request =useCallback(async (url, method = 'GET',body = null) =>{
        setLoading(true);
        try {
            if(body) {
                body = JSON.stringify(body);
            }

            url = urlStart+url

            const response = await fetch(url,{method: method, body: body,
                headers: {'Content-Type': 'application/json'},
                mode:'no-cors',cache: 'no-cache',});
           const data = await response.json();

           if(!response.ok){
               throw new Error("Smth wrong : "+data?.message);
           }
           setLoading(false);

           return data;

        }catch (e) {
            setLoading(false);
            setError(e.message);
            throw e;
        }
    },[]);

    const clearError = () => setError(null);

    return { loadings, request,clearError}
}

标签: node.jsjsonreactjsexpresspost

解决方案


推荐阅读