【问题标题】:express API extract data from URLexpress API 从 URL 中提取数据
【发布时间】:2021-06-28 10:40:42
【问题描述】:

我的 api 每 45 分钟接收一次请求:

GET http://MyHost/mediciones/sigfox_libelium/{device}/{data}/{time}/{customData#trama}

我希望我的代码将 {device}、{data}、{time} 和 {customData#trama} 保存到不同的变量中,以便我可以将其解析为可读值(发送的所有数据都是十六进制)并将它们插入到我的数据库。 如何从 URL 中取出这些值?

另外,req, res的目的是什么?我猜它代表request, respond。Respond 发回给客户端,但是,request?我真的不明白它是如何工作的。我正在学习所有这些新东西,希望有人能提供帮助。

这是我的 API 代码,我用 postman 试了一下,目前运行良好:

const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");
const Pool = require("pg").Pool;
const pool = new Pool({
    user: "mgr@stanpgtest",
    host: "stanpgtest.postgres.database.azure.com",
    database: "my db name",
    password: "my pass",
    port: 5432
});

const app = express();
app.use(cors());
app.use(bodyParser.json());

app.listen(8000, () => {
    console.log(`Server is running, listening to port 8000`);
});

app.post("mediciones/sigfox_libelium/{device}/{data}/{time}/{customData#trama}", (req, res) => {
    const { label, status, priority } = req.body;
    pool.query(
        "select now()",
        (error, results) => {
            if (error) {
              throw error;
            }
            res.send(results);
        }
    );
});

【问题讨论】:

标签: javascript express http


【解决方案1】:

您需要以这种格式编写路径,然后从 req.params 中提取您的参数。

app.post("mediciones/sigfox_libelium/:device/:data/:time/:customData", (req, res) => {
   const {device, data, time, customData} = req.params
}

我不确定#trama 是什么意思,但我猜你不能在路由模式中使用#。

【讨论】:

    猜你喜欢
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2012-01-01
    • 2016-11-26
    • 2011-10-19
    • 2021-05-16
    相关资源
    最近更新 更多