Javascript 我的快速解析设置有什么问题?

Javascript 我的快速解析设置有什么问题?,javascript,node.js,express,Javascript,Node.js,Express,服务器 客户 const express = require("express"); const app = express(); app.listen(4000, () => console.log("listening at 4000")); app.use(express.static("public")); app.use(express.json({limit: "1mb"})); //POS

服务器

客户

const express = require("express");
const app = express();

app.listen(4000, () => console.log("listening at 4000"));
app.use(express.static("public"));
app.use(express.json({limit: "1mb"})); 


//POST method route
app.post("/clientApi", (req, res) => {
  // res.send("POST request to the homepage")
  console.log(req.body);
});

在我尝试调用Express.json之前,一切正常,但我没有看到任何语法错误。 客户端可以向服务器发送数据。 但是数据太多了,所以我使用“req.body”来尝试得到我想要的,但是在终端上它是未定义的。因此,我决定尝试使用express.json,这就是出现错误的地方

错误消息


未捕获(承诺中)语法错误:JSON.parse:JSON数据第1行第1列的意外字符不应
fetch(“/clientApi”,fetchData)
include
http://localhost:4000/clientApi

您忘记了app.listen(4000,()=>{console.log(“4000时侦听”)}之后的{}应该会修复它

实际上您忘记在客户端站点生成正确的JSON格式:

function checkData() {
    let summoner = playerName.value;

    let fetchData = {
        method: "POST",
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify(summoner),
    }

    fetch("/clientApi", fetchData)
    .then(response => response.json())
    .then(data => {
        console.log("Success: ", data);
    });   
}
}


注意:在JSON.stringify()中传递的数据应该是正确的JSON对象。因此,它可以在另一端进行解析。

尝试发送一个对象,而不仅仅是字符串,例如


const playerName={
值:“foobar”
};
函数checkData(){
警察召唤者={…玩家名称};
常量fetchData={
方法:“张贴”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify(召唤者),
}
获取(“/clientApi”,获取数据)
.then(response=>response.json())
。然后(数据=>{
console.log(“成功:”,数据);
});
}
checkData();

否则Express将无法对其进行解码。

也许我可以将其设置为idk,但这不是问题所在。正如我在解释中所说,客户端的fetch()可以很好地发送数据。这是服务器代码express.json,我需要找出哪里出了问题,这样它才能解析数据。如果您试图从客户端调用它,是否添加了CORS?侦听不应该是最新的。不幸的是,这也是问题所在。是的,这就是问题所在。
function checkData() {
let summoner = playerName.value;
let sendData = {};
sendData.summoner = summoner;

let fetchData = {
    method: "POST",
    headers: {
        "Content-Type": "application/json"
    },
    body: JSON.stringify(sendData),
}

fetch("/clientApi", fetchData)
.then(response => response.json())
.then(data => {
    console.log("Success: ", data);
});