Javascript 节点、Express、vanilla JS POST表单不向API发送数据
我正在使用NodeJS和ExpressJS进行表单提交,将数据推送到数据库 这是我的表格Javascript 节点、Express、vanilla JS POST表单不向API发送数据,javascript,node.js,mongodb,api,express,Javascript,Node.js,Mongodb,Api,Express,我正在使用NodeJS和ExpressJS进行表单提交,将数据推送到数据库 这是我的表格 <form action="/pokedex/register/poke_submission" method="POST"> <div> <label for="name">Pokemon</label>
<form action="/pokedex/register/poke_submission" method="POST">
<div>
<label for="name">Pokemon</label>
<input type="text" name="name" id="name" required />
</div>
<div>
<label for="number">Number</label>
<input type="text" name="number" id="number" required />
</div>
<div>
<label for="primaryType">Primary Type</label>
<input
type="text"
name="primaryType"
id="primaryType"
required
/>
</div>
<div>
<label for="secondayType">Secondary Type</label>
<input type="text" name="secondayType" id="secondayType" />
</div>
我用的是这两个
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
当我点击Submit时,它会将我发送到/pokedex/register/poke_submission,但出现405错误。似乎代码如下所示:
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
当我尝试使用body parser时,它只是告诉我它已被弃用。我已经尝试再次使用它,但我得到了与body parser相同的弃用状态,即“'bodyParser'已弃用。ts(6385)”,提交内容仍然会将我指向正确的url,但是有一个http 405错误。@Rednirug relevant:也发现了这个问题:所以我认为您只需要将extended设置为false,并使用express.json和express.urlencoded。@SilviuBurcea我使用的是express 4.17.1,这就是为什么我要使用
express.json()
和express.urlencoded()
,就像那篇文章最后说的那样。我也尝试过遵循body parser的步骤,但VS代码只是在其中插入了一行代码,并告诉我它已被弃用。您使用的是Express 4.16.1+,因此不需要body parser,如下面的答案所述。405错误是不允许的,你能在浏览器的“网络”选项卡中再次检查路径是否与“邮递员”中的路径相同吗?@SilviuBurcea Yep实际上这是我一直在处理的主要问题。到目前为止,我已经了解到我的实时服务器正在破坏端点。我设法提交了数据,它显示了我用JSON添加的信息。唯一的问题是它仍然没有与我的API交互,所以没有任何东西被推送到数据库中。@SilviuBurcea我试图回到Postman以确保API仍然有效。数据顺利通过并发布在我的数据库中。浏览器网络显示调用了相同的API端点?是的。我决定现在以“action”的形式使用整个localhost url。这是一个临时的解决方案。谢谢你的帮助。
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())