将数据从视图传递到快递

时间:2016-03-22 12:11:10

标签: javascript jquery node.js express

我正在寻找有关以下问题的一些指导。我正在尝试从玉视图将字符串传递到服务器。 val正在前端返回,但是当我尝试将它存储在对象中时,我将被返回[object Object]

我相信它正在打破参数变量,但我无法理解为什么。

$(function(){
  $('#search').on('paste', function(){
    console.log('key up');

    setTimeout(function () {
      var linkURL =  $('#search').val();
      console.log(linkURL)

      // EVERYTHING BREAKS HERE
      var parameters = { search: $(this.target).val() };
      console.log('p' + parameters)
      $.get( '/searching',parameters, function(data) {
        $('#results').html(data);
      });
    }, 100);

  });
});

查看

extends layout

block content
  .container
    h1 London Plans
    form(method='post' action='/submit', class='plans', id='plans')
      .form-group
        label Do you have a link?
        input.form-control(name='search', id='search' type='text', required='required')

我认为快速代码是正确的,console.log返回undefined,假设因为对象已损坏。

app.get('/searching', function(req, res){
 // input value from search
 var val = req.query.search;
 console.log('val equals =' + ' ' + val);

// testing the route
// res.send("WHEEE");

});

非常感谢任何正确调试对象的指针。

1 个答案:

答案 0 :(得分:1)

尝试将var parameters = { search: $(this.target).val() };替换为var parameters = { search: $('#search').val() };this内的setTimeout()变量指的是thison()以外的不同对象。

您可以将{ search: $(this.target).val() }替换为{ search: linkURL },因为您已将$('#search').val()的结果保存到linkURL

另请参阅on()函数的jQuery API:http://api.jquery.com/on/

示例使用this指针"因为它是"而不是写this.target。例如,在您的情况下,您可以写:$(this).val()而不是$(this.target).val()。将行var linkURL = $('#search').val();移到setTimeout行上方并将其更改为var linkURL = $(this).val();。然后将{ search: $(this.target).val() }替换为{ search: linkURL }

this.target是从事件对象获取目标元素的方法,但在这里我们没有。)