gpt4 book ai didi

node.js - Nodejs 整数错误输入语法无效

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:32 25 4
gpt4 key购买 nike

我使用 postgres sql、nodejs、express

     app.get("/topic/create", function(req, res) {
var sql = "SELECT id, title FROM topic";
client.query(sql, function(err, res2) {
console.log(res2.rows);
//res.render("create", { topics: res2.rows });
});
});

这个代码是我的路由器代码但是当我输入该网址时出现错误

   error: invalid input syntax for integer: "create"
name: 'error',
length: 110,
severity: 'ERROR',
code: '22P02', line: '62',routine: 'pg_atoi'

我不知道原因,因为 sql 正在处理其他 url,只是 app.get 代码不起作用

    //라우팅 작업
app.get("/", function(req, res) {
res.redirect("/topic");
});
app.get("/topic", function(req, res) {
var sql = "SELECT id, title FROM topic";
client.query(sql, function(err, res2) {
if (err) {
console.log(err);
} else {
res.render("view", { topics: res2.rows });
}
});
});
app.get("/topic/:id", function(req, res) {
var id = req.params.id;
var sql1 = "SELECT id, title FROM topic";
var sql2 = "SELECT * FROM topic where id=$1";
client.query(sql2, [id], function(err, res2) {
if (err) {
console.log(err);
} else {
client.query(sql1, function(err, res3) {
if (err) {
console.log(err);
res.status(500).send("Internal Server Error");
} else {
var list = [];
var result = res3.rows;
for (var i = 0; i < result.length; i++) {
list.push(res3.rows[i]);
}
res.render("view", { details: res2.rows, topics: list });
}
});
}
});
});

这是我的路由器代码,它是相同的。这段代码运行良好

我不知道为什么只有那个网址出错

最佳答案

app.get("/topic/create", function(req, res) {
var sql = "SELECT id, title FROM topic";
client.query(sql, function(err, res2) {
console.log(res2.rows);
//res.render("create", { topics: res2.rows });
});
});

您必须将此路由器放在第一个路由器的下面,

app.get("/topic/:id", function(req, res) {
var id = req.params.id;
var sql1 = "SELECT id, title FROM topic";
var sql2 = "SELECT * FROM topic where id=$1";
client.query(sql2, [id], function(err, res2) {
if (err) {
console.log(err);
} else {
client.query(sql1, function(err, res3) {
if (err) {
console.log(err);
res.status(500).send("Internal Server Error");
} else {
var list = [];
var result = res3.rows;
for (var i = 0; i < result.length; i++) {
list.push(res3.rows[i]);
}
res.render("view", { details: res2.rows, topics: list });
}
});
}
});
});

这会起作用,因为快速获取并与第一个匹配。它失败了,这就是你收到此错误的原因。

关于node.js - Nodejs 整数错误输入语法无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59676081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com