从节点js输入远程obejct

时间:2015-09-29 12:00:38

标签: javascript node.js typeahead.js typeahead twitter-typeahead

我有一个很大的问题。我想在node.js中使用Twitter Typeahead自动完成功能。

用户选择名称并从数据库(名称,地址,邮件)获取有关他的所有数据。

我试图传递对象(数据),但我得到“未定义”(屏幕1)。如果我传递(data.name)它没关系但是我无法访问其他值(地址,邮件..)

请给我一个提示如何连接这个,或者如何传递对象和在typeahead输入中获取名称?

<script type="text/javascript">   
    $(document).ready(function(){
        $('input.typeahead').typeahead({
            name: 'name',
            remote:{
                url:  "https://testtest.com/customers/wybierz/search?key=%QUERY",
            },      
            limit: 100
        }).on('typeahead:selected', function (event, selection) {
    $('.profile_add_new').show();
    $('#profil0').text(selection.name); 
    $('#profil1').text(selection.address);  
    $('#profil2').text(selection.email);    
    });   
    });
    </script>

的node.js

app.get('/customers/wybierz/search', isLoggedIn, function(req, res) {
req.getConnection(function (err, connection) {
connection.query('SELECT * FROM pacjenci WHERE name LIKE "%'+req.query.key+'%"', function(err, rows, fields) {
          if (err)
              console.log("Error inserting : %s ",err );

            for(i=0;i<rows.length;i++)
                {
                 data.push(rows[i]);
                }    
            res.end(JSON.stringify(data));

        });           
    });
});

http://i.imgur.com/bNzFZTz.png

1 个答案:

答案 0 :(得分:0)

您需要声明一个名为data的数组。试试这个,

app.get('/customers/wybierz/search', isLoggedIn, function(req, res) {
req.getConnection(function (err, connection) {
connection.query('SELECT * FROM pacjenci WHERE name LIKE "%'+req.query.key+'%"', function(err, rows, fields) {
      if (err)
          console.log("Error inserting : %s ",err );
        var data = [];
        for(i=0;i<rows.length;i++)
            {
             data.push(rows[i]);
            }    
        res.end(JSON.stringify(data));

    });           
  });
});