我是使用nodeJS和npm模块的新手。
使用模块twit
,我可以对Twitter API进行GET请求并搜索推文。
var Twit = require('twit')
var T = new Twit({ `login details`})
T.get('search/tweets', { q: 'banana since:2011-07-11', count: 100 }, function(err, data, response) {
console.log(data)
})
我正在尝试构建一个简单的用户浏览器页面,用户可以在其中输入自己的查询参数。我知道模块是服务器端的,我们不能在浏览器中使用它们。我也不能使用browserify
,因为twitter使用Oauth方法,这意味着您无法从浏览器访问它。
是否可以将查询参数从浏览器传递回服务器代码,然后将结果传递回浏览器?
T.get('search/tweets', { q: {user options}, function(err, data, response) {
console.log(data)
})
我们可以将socket.io
用于流式Twitter数据,但是如何将其用于REST API?
答案 0 :(得分:1)
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const Twit = require('twit');
...
const T = new Twit(LOGIN_DETAILS);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/search', function (req, res, next) {
T.get('search/tweets', {q: req.body.searchQuery, count: 100}, function (err, data, response) {
return res.json({
data: data
});
});
});
...
$.ajax({
url: "{API_URL}/search",
type: "POST",
dataType: 'json',
data: JSON.stringify({
searchQuery: SearchQuery
}),
contentType: "application/json; charset=utf-8",
success: function (msg) {
console.log(msg);
// do something with the response
}
});
$是jQuery,有关jquery ajax的更多信息