当我使用 node.js 将整数作为参数放入 url 时,为什么我的 restful API 卡住了

Why my restful API stuck when I put integer as parameter in the url using node.js

我正在尝试获取 JSON 格式的数据。我只是复制了一个旧项目并将其IP地址更改为数据库,用户名,端口,密码和数据库名称。

当我尝试通过此地址访问数据时:localhost:3000/&id=13

浏览器就是不加载它们。

当我输入没有 / 端口的地址时,我看到错误消息:

return res.status(500).json({ 错误: "Грешна заявка. Опитай отново !"})

相同的代码被固定到另一个数据库,我看到了 JSON 格式的数据。

我检查了10次用户名、密码、端口和数据库名是否正确,都没有问题。

代码:

    // Create express app
var express = require("express")
var app = express()
var mysql = require('mysql')
var express = require("express")
var cors = require('cors')

app.use(cors())

// Server port
var HTTP_PORT = 3000

var pool = mysql.createPool({
  connectionLimit: 10,
  host: '192.168.0.1',
  user: 'user',
  port: '3388',
  password: 'password',
  database: 'databasename'
});

var ardaforecast = '';


app.route('/')
  .get(function (req, res) {
    // omitted
    res.setHeader('Access-Control-Allow-Origin', '*', 'Cache-Control', 'private, no-cache, no-store, must-revalidate');
    //const date = req.query.date;
    const id = req.query.id;

    pool.query(`CALL Get_Alert_levels_Station(${id})`, function (error, result) {
      if (error)
      return res.status(500).json({ error: "Грешна заявка. Опитай отново !"})
      aladinModel = result;
      res.json({ ardaforecast })
    });
  });

// Start server
app.listen(HTTP_PORT, () => {
  console.log("Server running on port %PORT%".replace("%PORT%", HTTP_PORT))
});

pool.on('error', function (err) {
  console.log(err.code); // 'ER_BAD_DB_ERROR'
});

app.use(function (req, res) {
  res.status(404);
})

;

我可以举例说明如何解决这个问题或如何找出问题所在吗?

您可以使用这个来查看您的 url 包含的内容:https://www.freeformatter.com/url-parser-query-string-splitter.html

在您的示例中,问题是您使用的是 &(与号),但它所做的是分隔多个查询参数。由于您只有一个,因此您的 url 结构不正确并且不包含任何参数。

你应该用?(问号)来表示第一个:

localhost:3000/?id=13

p.s。 Успех;)