由于某种原因,我无法声明var JS

时间:2020-07-30 05:49:09

标签: javascript node.js rest

我正在尝试与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;

enter image description here

enter image description here

2 个答案:

答案 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中使用正确的类型。您可以将参数记录到控制台并在那里检查类型。

相关问题