Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点、Express、vanilla JS POST表单不向API发送数据_Javascript_Node.js_Mongodb_Api_Express - Fatal编程技术网

Javascript 节点、Express、vanilla JS POST表单不向API发送数据

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>

我正在使用NodeJS和ExpressJS进行表单提交,将数据推送到数据库

这是我的表格

<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())