2017-11-22 1 views
0

Express가있는 노드 응용 프로그램에서 작업 중입니다. 하지만 아주 이상한 버그를 만났습니다.res.render는 노드에서 mysql을 쿼리 한 후 결과 매개 변수를 가져올 수 없습니다.

router.post('/search', function (req, res, next) { 
    var key = req.body.search; 
    if(key.length>0) { 
    connection.query('select * from patient where name=?', [key], function(err, result) { 
     if(err) return console.log(err); 
     console.log(result); 
     res.render('searchPage', { 
     name: "Alex", 
     birthday: result.Birthday, 
     sex: result.sex, 
     symptom: result.Symptom, 
     contact: result.Contact, 
     }); 
    }) 
    } 
}) 

검색을 수행 할 항목을 게시 한 후 명령 줄에 뭔가가 나타납니다.

[ RowDataPacket { 
    id: '1', 
    Name: 'Alex', 
    Birthday: null, 
    sex: null, 
    Sympton: null, 
    Contact: '13719483934' } ] 

하지만 난 과거의 내 옥 파일에 문자열 ALex를 제외하고 내 searchPage HTML 페이지에 아무것도 없어. 내 비취 파일이 변수 값을 제대로 가져올 수 있지만 res.render() 내에서 result 매개 변수가 실패한 것 같습니다. 문제가 어디에 있습니까?

답변

1

results은 배열입니다 (항상 docs를보고 있음). 따라서이 경우 첫 번째 요소를 다음과 같이 사용하십시오 (https://github.com/mysqljs/mysql)

pool.query('SELECT 1 + 1 AS solution', function (error, results, 
    fields) { 
    if (error) throw error; 
     console.log('The solution is: ', results[0].solution); 
}); 
+0

해결책입니다. 고맙습니다. –

관련 문제