Mysql ID作为参数传入,查询无法返回实际存在的行

Mysql ID作为参数传入,查询无法返回实际存在的行,mysql,node.js,express,node-mysql,Mysql,Node.js,Express,Node Mysql,我使用nodemysql试图查询熟悉的Northwind数据库,这是我在本地拥有的。这是我的客户模型: models/customer.js 好的,我知道这些类型的查询很容易受到SQL注入的攻击,但我来自MongoDB,现在我正在进行实验,以确保在重构MySQL连接和查询之前,它们能够正常工作。下面是我如何从控制器中调用它们: controllers/customers.js 最后,路线: var router = require('express').Router(); var Custome

我使用nodemysql试图查询熟悉的Northwind数据库,这是我在本地拥有的。这是我的客户模型:

models/customer.js

好的,我知道这些类型的查询很容易受到SQL注入的攻击,但我来自MongoDB,现在我正在进行实验,以确保在重构MySQL连接和查询之前,它们能够正常工作。下面是我如何从控制器中调用它们:

controllers/customers.js

最后,路线:

var router = require('express').Router();
var CustomersController = require('../../app/controllers/customers');

router.route('/customers')
    .get(CustomersController.index)

router.route('/customers/:id')
    .get(CustomersController.view)

module.exports = router;
GET/customers正在工作,但GET/customers/:id不工作。例如,如果我想查看id为ALFKI的客户的详细信息,我会在控制器中输入错误-id为ALFKI的客户不存在!然而,当我使用我在模型中使用的相同查询直接查询数据库时,即从CustomerID='ALFKI'的客户中选择*时,返回一行


也许一双新的眼睛可以告诉我我做错了什么?

如果CustomerID不是整数,那么它需要用单引号括起来。从CustomerID='+id+'的客户中选择*;您的错误回调可能包含实际错误,请检查它,而不是仅仅说它不存在。啊。我的错误。非常感谢你的提醒。
var Customer = require('../models/customer');

var CustomersController = {
    index: function(req, res, next) {
        var data = {};
        Customer.list(function(err, rows) {
            if (err) {
                next(new Error('No customers found!'));
                return;
            }
            data.title = 'All customers';
            data.customers = rows;
            res.render('customers/index', data);
        });
    },
    view: function(req, res, next) {
        var id = req.params.id;
        var data = {};
        Customer.read(id, function(err, row) {
            if (err) {
                next(new Error('The customer with ID ' + id + ' does not exist!'));
                return;
            }
            data.title = row.ContactName;
            data.customer = row;
            res.render('customers/read', data);
        });
    }
};

module.exports = CustomersController;
var router = require('express').Router();
var CustomersController = require('../../app/controllers/customers');

router.route('/customers')
    .get(CustomersController.index)

router.route('/customers/:id')
    .get(CustomersController.view)

module.exports = router;