首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只将API POST取到Node-js 6次。

只将API POST取到Node-js 6次。
EN

Stack Overflow用户
提问于 2021-03-30 11:38:20
回答 1查看 287关注 0票数 0

我试图在Vanilla JS中使用Fetch API POST方法。端点位于Node-JS代码中。只要在html文本输入上运行ONKEYDOWN函数,POST方法函数就会运行。每当我们在键盘上键入时,它都会将数据发送到Node端点,然后打印出来。每次我输入数据时,都会发送数据,但只有6次才停止打印req.body

这是我的HTML + Vanilla (index.html)代码。

代码语言:javascript
复制
 <div onkeydown="post()">
            First Name
            <input type="text" name="FirstName" id="FirstName">
            <br> <br>
            Middle Name
            <input type="text" name="MiddleName" id="MiddleName">
            <br> <br>
            Last Name
            <input type="text" name="LastName" id="LastName">
        </div>

  <script>
            function post() {
                const formData = {
                    FirstName: document.getElementById('FirstName').value,
                    MiddleName: document.getElementById('MiddleName').value,
                    LastName: document.getElementById('LastName').value,
                }
                localStorage.setItem("FirstName", formData.FirstName)
                localStorage.setItem("MiddleName", formData.MiddleName)
                localStorage.setItem("LastName", formData.LastName)
                console.log(formData);

                fetch('/', {
                    method: 'post',
                    headers: {
                 

   'Content-Type': 'application/json'
                },
                body: JSON.stringify(formData)
            })
        }
    </script>

这是我的Node-js代码(index.js)

代码语言:javascript
复制
 const express = require('express')
 const app = express()
 app.use(express.json({ limit: '20mb'}))
 app.use(express.static('/')) //static folder
 
 
 app.listen(80, () => {
     console.log('THE PORT IS UP AND RUNNING')
 })
 
 app.get('/', (req, res) => {
     res.sendFile('index.html', { root: __dirname })
 })
 
 let i = 0; // to display the number of outputs
 app.post('/', (req, res) => {
     console.log(req.body, i++)
     // print the data
 })

根据这段代码,我只接收了6次req.body,然后打印在终端上(6次)。请帮帮忙

EN

回答 1

Stack Overflow用户

发布于 2021-03-30 11:42:04

您需要对以前的请求发送响应。实现它的最简单方法是调用res对象的res方法。

代码语言:javascript
复制
// print the data
res.end();

您的请求没有击中服务器,因为浏览器的并发请求限制为6,对于一些浏览器,包括Google。浏览器在发送下一个请求之前等待挂起的请求完成,但您的服务器从不发送响应。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66870275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档