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

问题描述

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

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

浏览器只是不加载它们。

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

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

相同的代码被固定到另一个数据库,我看到了 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);
})

;

我能否举例说明如何解决此问题或如何找出问题所在?

解决方法

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

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

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

localhost:3000/?id=13

附言Успех ;)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...