Mysql 为什么';在Node.js中使用escape()时是否显示错误?

Mysql 为什么';在Node.js中使用escape()时是否显示错误?,mysql,node.js,express,Mysql,Node.js,Express,我正在Node.js/Express应用程序中使用mysql模块 当我查询MySQL中没有的数据时,它会显示错误。这就是我所期望的。但是如果我对通过的数据使用connection.escape(),即使假设有错误,它的行为就像什么都没有发生一样,并继续执行代码。 为什么? 下面是我的代码。请记住,我正在传递不存在的数据。我期待着这个错误,我希望它发生 下面就是我所期望的。我通过POST传递的id不在数据库中,因此控制台日志记录:错误 下面我添加了connection.escape()功能。现在,

我正在Node.js/Express应用程序中使用mysql模块

当我查询MySQL中没有的数据时,它会显示错误。这就是我所期望的。但是如果我对通过的数据使用connection.escape(),即使假设有错误,它的行为就像什么都没有发生一样,并继续执行代码。 为什么?

下面是我的代码。请记住,我正在传递不存在的数据。我期待着这个错误,我希望它发生

下面就是我所期望的。我通过POST传递的id不在数据库中,因此控制台日志记录:错误

下面我添加了connection.escape()功能。现在,当它运行时,即使数据不在数据库中,它也会记录成功

为什么会这样

这是我在运行第一个代码示例时遇到的错误。第二个例子是,在到达与查询相关的空属性之前,我不会得到任何错误。因为没有结果,而且我无法在假定发生错误时停止应用程序

[Error: ER_BAD_FIELD_ERROR: Unknown column 'fsaf' in 'where clause']
 code: 'ER_BAD_FIELD_ERROR',
 errno: 1054,
 sqlState: '42S22',
 index: 0 }

因为没有错误-您的查询有效并已成功完成。您收到的结果集为空,这是预期的有效行为


在您的第一个示例中,字符串连接的结果可能是无效的sql,请发布您的错误

您对连接无效的看法是正确的。我修好了。这只是一个错误,我在我的申请中把它更正了。我发布了我预料到的错误。使用escape()时没有错误。
app.post('/check', function(req,res) {

    connection.query('SELECT * FROM category where id=' + connection.escape(req.body.id) + '', function(err,rows,fields) {

        if(err) { 
            console.log('ERROR'); 
        } else {
            console.log('SUCCESS');
            }           


    });

});
[Error: ER_BAD_FIELD_ERROR: Unknown column 'fsaf' in 'where clause']
 code: 'ER_BAD_FIELD_ERROR',
 errno: 1054,
 sqlState: '42S22',
 index: 0 }