【问题标题】:Getting values from a text input, and putting it into node express (or jquery)从文本输入中获取值,并将其放入 node express(或 jquery)
【发布时间】:2015-10-26 09:58:02
【问题描述】:

我正在构建一个网站,该网站将根据用户输入搜索 Twitter 的 API。如果我对搜索内容进行硬编码,我可以正常工作:

app.js(节点快递)

var express = require('express')
var app = express()
var Twit = require('twit')

app.use(express.static(__dirname + '/public'));

var T = new Twit({
    consumer_key:         'bla'
  , consumer_secret:      'bla'
  , access_token:         '35929248-bla'
  , access_token_secret:  'bla'
})

//get based on search term, count, location, etc
app.get('/tw', function (req, res) {
    T.get('search/tweets', { q: 'beverly hills playhouse', count: 100}, function(err, data, response) {
    res.send(data);
  });
});

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;
  console.log('Example app listening at http://%s:%s', host, port);

});

这是我的 jquery:

$(function () {

    $("#search-button").click(function() {
        $.getJSON(
            //URL of web service
            "http://localhost:3000/tw"

        ).done(function (result) {
            console.log(result);

        });
    });
});

现在,我想根据我的 HTML 上的用户输入来更改 q: 'beverly hills playhouse' 和 count: 我猜我将使用的其他 get 方法的所有其他变量。

【问题讨论】:

    标签: javascript jquery html node.js express


    【解决方案1】:

    如果您将请求作为 post 请求发送到您的服务器,您可以在请求中发送您从 jQuery 获得的信息,然后在服务器端使用您刚刚发送的请求信息将 api 调用发送到 twitter。我建议研究的事情是:

    body-parser - https://www.npmjs.com/package/body-parser(用于解析传入请求并转换为易于使用的 json 对象)

    ajax 调用和承诺 - http://api.jquery.com/jquery.ajax/(用于让 javascript 执行辅助任务)

    邮递员 - https://www.getpostman.com/(发出 api 请求的好方法)

    与编程中的大多数事情一样,有很多方法可以做你想做的事。我没有测试过这段代码,但我可能会这样做

    app.js:

    var express     = require('express')
    var app         = express()
    var Twit        = require('twit')
    
    //Include body-parser for middleware
    var boadyParser = require( 'body-parser' )
    
    //This sets bodyParser to act as middleware and go over all requests sent to your server
    app.use( bodyParser.json() );
    
    app.use(express.static(__dirname + '/public'));
    
    var T = new Twit({
        consumer_key:         'bla'
      , consumer_secret:      'bla'
      , access_token:         '35929248-bla'
      , access_token_secret:  'bla'
    })
    
    //get based on search term, count, location, etc
    app.post('/tw', function (req, res) {
        var search = req.body.search;
        T.get('search/tweets', { q: search, count: 100}, function(err, data, response) {
        res.send(data);
      });
    });
    
    var server = app.listen(3000, function () {
      var host = server.address().address;
      var port = server.address().port;
      console.log('Example app listening at http://%s:%s', host, port);
    
    });
    

    jQuery:

    $(function () {
        <input type="text" id="search" placeholder="Enter twitter search terms">
    
         $("#search-button").click(function() {
            $.ajax({
                   url: "http://localhost:3000/tw",
                   method: "POST",
                   data: $("#search").val()
            })
         });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 2020-05-15
      相关资源
      最近更新 更多