当我使用 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。 Успех;)
我正在尝试获取 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。 Успех;)