TypeError:参数url必须是字符串,而不是对象
遇到此错误,但我很困惑,为什么我得到它,因为我在我的twitterClient.get中使用的url是一个字符串。我尝试了chaning端口并重新启动计算机,以及搜索任何语法错误都无济于事。任何帮助将不胜感激!TypeError:参数url必须是字符串,而不是对象
'use strict'; const express = require('express'),
request = require('request'),
twitter = require('twitter'),
aryMod = require('./resources/modules/objectArrayMod.js'),
app = express();
app.set('view engine', 'pug');
app.set('views', './views');
app.use(express.json());
app.use(express.urlencoded({
extended: true
}));
app.use(express.static('resources'));
app.get('/', function(req, res) {
let twitterClient = new twitter({
consumer_key: '//////',
consumer_secret: '//////',
access_token_key: '//////',
access_token_secret: '//////'
});
twitterClient.get({
url: 'https://api.twitter.com/1.1/search/tweets.json',
qs: {
q: '#csc365'
},
json: true
}, function(err, response, body) {
let tweetAry = [];
for(let i = 0; i < body.statuses.length; i++) {
let object = body.statuses[i];
let text = unescapeText(object.text);
if(text !== ''){
let repSent = text.replace(/[^a-zA-Z ]/gi, ''),
lSent = repSent.toLowerCase(),
sentenceAry = lSent.split(' '),
numOfAnagrams = 0;
for(i = 0; i < sentenceAry.length; i++){
sentenceAry[i] = sentenceAry[i].split('').sort().join();
}
for(i = 0; i < sentenceAry.length; i++){
let anagram = false;
if(sentenceAry[i] !== -1){
for(let j = i + 1; j < sentenceAry.length; j++){
if(sentenceAry[j] !== -1){
if(sentenceAry[j] === sentenceAry[i]){
numOfAnagrams++;
sentenceAry[j] = -1;
anagram = true;
}
}
}
}
if(anagram){
numOfAnagrams++;
}
sentenceAry[i] = -1;
tweetAry.push({
text: text,
anaScore: numOfAnagrams
});
}
}
}
aryMod.aryOfObjects(tweetAry);
if (!err) {
res.render('twitter', { aryMod: aryMod });
}
else {
console.error(err);
}
});
});
let unescapeText = function(escTxt) {
return escTxt.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
};
const server = app.listen(3000, function() {
console.log(`Started server on port ${server.address().port}`);
});
什么该服务器是应该做的是动态使用含有特定主题标签鸣叫,算起来每鸣叫,在一个单独的AJAX文件进来字谜量,并将其加载到页面,让你点击它们,并保持这些推文上的anagrams数量的分数
回答:
看看node-twitter文档,看起来你应该用一个url字符串作为第一个参数来调用twitter.get(),然后然后一个对象包含你的参数,如下所示:twitterClient.get('search/tweets', params, function(err, response, body) {...})
这里是一个例子从他们的文档中了解如何使用节点客户端来搜索推文:
client.get('search/tweets', {q: 'node.js'}, function(error, tweets, response) { console.log(tweets);
});
以上是 TypeError:参数url必须是字符串,而不是对象 的全部内容, 来源链接: utcz.com/qa/258635.html