2011-05-13 5 views
1

나는 node-mysql 모듈과 함께 expressjs를 사용합니다.expressjs mysql update error

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('/'); 
    }); 

문제점은 무엇입니까 : 나는 행동을

/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) 

를 업데이트 게시 할 때 나는이 작업을 사용이 오류가있어?

+0

여기서'cb '가 정의되어 있습니까? – jcolebrand

답변

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

당신은 그런 다음, 모든 문자열 부분을 연결 끝에서 매개 변수의 배열을 전달하려는 , 대신

+의 사용되었다.

+0

예, 감사합니다. SET 앞에 하나의 공백이 있어야 제대로 작동합니다. 'SET title =?, text =?' – vegas

+0

@vegas 나는 그것에있다. Drop mysql, couch 또는 mongo – Raynos

+0

다음 단계 -> nosql :) – vegas