expressjs mysql更新错误

时间:2011-05-13 16:35:16

标签: node.js express

我使用带有node-mysql模块的expressjs。发布更新操作时出现此错误

/Users/mac/node_modules/mysql/lib/mysql/client.js:106
        cb(err);
        ^
TypeError: string is not a function
    at String.CALL_NON_FUNCTION (native)
    at Query.<anonymous> (/Users/mac/node_modules/mysql/lib/mysql/client.js:106:9)
    at Query.emit (events.js:64:17)
    at Query._handlePacket (/Users/mac/node_modules/mysql/lib/mysql/query.js:35:12)
    at Client._handlePacket (/Users/mca/node_modules/mysql/lib/mysql/client.js:294:14)
    at Parser.<anonymous> (/Users/mac/node_modules/mysql/lib/mysql/client.js:83:14)
    at Parser.emit (events.js:64:17)
    at /Users/mac/node_modules/mysql/lib/mysql/parser.js:75:14
    at Parser.write (/Users/mac/node_modules/mysql/lib/mysql/parser.js:580:7)
    at Socket.<anonymous> (/Users/mca/node_modules/mysql/lib/mysql/client.js:63:16)

我使用此动作:

 app.post('/post/:id/edit', function(req, res){
         var id = req.params.id;
        var query = client.query(
          'UPDATE '+POST,
          'SET title = ?, text = ?',
          [req.body.title, req.body.text ],
        ' WHERE id='+id
        );
         res.redirect('/');
    });

怎么了?

1 个答案:

答案 0 :(得分:2)

var query = client.query(
      'UPDATE '+POST +
      ' SET title = ?, text = ?' +
      ' WHERE id='+id,
      [req.body.title, req.body.text ]
    );

您使用,代替+

您希望连接所有字符串部分,然后在最后传递参数数组。