如何向条带化nodejs express后端发送数据
我尝试使用官方文档将Stripe集成到我的React应用程序中。如果您可以查看此文档,您会发现它们使用的是静态值作为金额(2000) 前端使用fetch的如何向条带化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:
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
...