node.js - 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}
}
解决方案
推荐阅读
- linux - 为什么 dotnet 在 Linux 上产生多个进程?
- reactjs - 想用 redux 给每个元素不同的状态
- mpandroidchart - mpandroidchart,一段时间没有数据时不画线
- assembly - 为什么汇编程序可以在指令中计算复数?
- nuxt.js - nuxt js在项目开始有地方跑吗
- c# - C# .NET 调用扫描器管理器并显示图片
- flask - 验证 WTForms 和 Jinja 中不存在的字段
- java - Java Advapi32Util 更新注册表项
- javascript - 在画布上绘制形状、线条、贝塞尔曲线、文本等的最佳实践和方法
- vbscript - VBS:在二维数组(行和列)中查找最大 str 长度