【问题标题】:how to fetch POST request body data from the client side?如何从客户端获取 POST 请求正文数据?
【发布时间】:2020-05-24 02:46:31
【问题描述】:

抱歉这个菜鸟问题,学生在这里,还在学习

我正在尝试将 POST 请求的请求正文从服务器传递到客户端。我有一个 Arduino 传感器向快速服务器发出带有传感器数据的发布请求。传感器数据位于 POST 请求正文中,我将数据推送到名为“dataArray”的数组中。这部分似乎正在工作。

我的问题是我现在被困在如何将这些数据从快速服务器传递到客户端的 Vue 组件上。我应该开辟一条新路线吗?我不是要求任何人为我编写任何代码,我只是希望有人能指出我正确的方向或提出一些建议,因为我不知道我应该如何去做。谢谢你。

server.js

var express = require("express")
var cors = require("cors")
var bodyParser = require("body-parser")
var app = express()
var mongoose = require("mongoose")
var Users = require("./routes/Users")
var port = process.env.PORT || 5000
var dataArray = []

app.use(bodyParser.json())
app.use(cors())
app.use(bodyParser.urlencoded({ extended: true }))

const mongoURI = 'my_connection_string'

mongoose.connect(mongoURI, { useNewUrlParser: true })
  .then(() => console.log("MongoDB Connected"))
  .catch(err => console.log(err))

app.use("/users", Users)
app.route("/api/:apikey1")


app.post("/api/:apikey1", function(request, response) {
  var myData = request.body;
  console.log(myData)
  dataArray.push(myData)
  response.send("Array Filled")
});

app.listen(port, function () {
console.log("Server is running on port: " + port)
})

【问题讨论】:

    标签: javascript node.js rest express


    【解决方案1】:

    如果您想保持简单,请使用 socket.io 库。

    它可用于客户端和服务器,您也可以在您的 Vue 客户端中使用。

    此外,您不需要任何额外的路由,只需在您的 app.post("/api/:apikey1") 路由中,使用 socket.io 库上的 emit 方法来广播从传感器接收到的数据

    【讨论】:

    • 嗨,谢谢。花了我一段时间,但我能够使用 emit 函数完成这项工作,再次感谢。
    【解决方案2】:

    从服务器到客户端的任何数据流必须首先在客户端启动,由pollingWebSocketsServer-sent events

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 2016-08-01
      • 1970-01-01
      • 2011-11-23
      • 2011-12-27
      • 1970-01-01
      相关资源
      最近更新 更多