我正在尝试与JS的API进行协商,但是在尝试通过URL的那一刻,未接收到该变量,并且在我尝试放入console.log之后,却没有在控制台上打印,然后,我尝试添加一个var,但是它不起作用。
当我尝试进行咨询时,所有内容通常都能正常工作,但是当我在URL上添加ID时,它告诉我什么都没找到,在这种情况下,我知道一个对象的ID为14,并且我尝试localhost:3000/task/14
。
一个文档是 controller.js 。另一个文档是 routes.js 。
const pool = require('./../database/connection')
class TaskController {
async getTasks (req, res) {
const result = await pool.query('select * from user');
res.json({
code: 200,
message: "Task retreived successfully",
data: result
});
}
async getTask(req, res) {
const id = req.params.id;
let sql = `select * from user where ID_user = ${id}`;
const task = await pool.query(sql);
if(task.length == 0) {
return res.json({
code: 404,
message: "Task no found",
data: [],
});
}
return res.json({
code:200,
message: "Task retreived successfully",
data: [task],
});
}
}
const taskController = new TaskController();
module.exports = taskController;
这是路线一:
const { Router } = require('express')
const router = Router();
const taskController = require("./../controllers/Task.controller");
router.get("/task", taskController.getTasks)
router.get('/task/:id', taskController.getTask)
module.exports = router;
答案 0 :(得分:0)
尝试一下。
select * from user where ID_user = '${id}'
答案 1 :(得分:0)
看起来您的类型不匹配。尝试解析您的ID,然后将其放入SQL查询,如下所示:
const id = parseInt(req.params.id);
let sql = `select * from user where ID_user = ${id}`;
或者如果您的数据库列“ ID_user”定义为文本,则应将$ {id}用引号引起来:
const id = req.params.id;
let sql = `select * from user where ID_user = '${id}'`;
通常,请确保针对数据库中定义的类型在js中使用正确的类型。您可以将参数记录到控制台并在那里检查类型。