如何向条带化nodejs express后端发送数据

如何向条带化nodejs express后端发送数据,express,fetch,stripe-payments,Express,Fetch,Stripe Payments,我尝试使用官方文档将Stripe集成到我的React应用程序中。如果您可以查看此文档,您会发现它们使用的是静态值作为金额(2000) 前端使用fetch的postAPI是: async submit(ev) { let {token} = await this.props.stripe.createToken({name: "Name"}); let response = await fetch("/charge", { method: "POST", headers:

我尝试使用官方文档将Stripe集成到我的React应用程序中。如果您可以查看此文档,您会发现它们使用的是静态值作为金额(2000)

前端使用fetch的
post
API是:

async submit(ev) {
  let {token} = await this.props.stripe.createToken({name: "Name"});
  let response = await fetch("/charge", {
    method: "POST",
    headers: {"Content-Type": "text/plain"},
    body: token.id
  });

  if (response.ok) console.log("Purchase Complete!")
}
在这里,他们发送令牌ID并在后端将其引用为
source:req.body

现在,我已尝试通过POST请求从前端发送金额,如下所示:

body:{
  amount: 2000,
  tokenId: token.Id
}
然后在后端将其引用为

...
amount: req.body.amount,
source: req.body.tokenid
...
它不起作用。并安慰两个未定义的返回

我尝试过很多事情,比如删除内容类型标题和一些小事情。有人指出,我应该将内容类型更改为application/json,我已经考虑设置
app.use(require(“body parser”).text())
app.use(require(“body parser”).json())
,但决定先咨询你们。

如果我理解正确,您希望将一个json从客户端发布到express server。如果是:

客户端

fetch({
方法:“POST”,
正文:JSON.stringify({
金额:2000,
tokenId:token.Id
}),
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”
}
});
服务器

const-app=express();
//如果express>=4
使用(express.json());
app.post(“/charge”),异步(请求、回复)=>{
控制台日志(请求主体);
});

顺便说一句
令牌ID
!==
tokenid
(在
req.body.tokenid
中)

那么
app.use会发生什么(需要(“body parser”).text())?我是否需要将其更改为
app.use(require(“body parser”).json())?或者干脆完全删除该行并使用
app.use(express.json())
?如果您想从客户端发布json,您需要在服务器中支持它(解析为json,而不是文本)。如果您使用的是express>4,您不需要
主体解析器
()。@Cole thinks?:)很高兴听到这个消息。
...
amount: req.body.amount,
source: req.body.tokenid
...