Сейчас я использую NodeJs. Я использовал пакет client-ouath2 для аутентификации рабочего процесса Oauth2.0. После аутентификации он перенаправляет на /callback
URL. При обратном вызове пакет client-oauth2 извлекает токен. Отсюда я вызвал функцию для запуска Twitter Stream.
Twitter.stream("statuses/filter", parameters)
.on("start", (response) => console.log("start"))
.on("data", async (tweet) => {
// Save into DB
const newTweet = {
text: tweet.text,
created_at: Date.now(),
};
let tweetModel = new Tweet(newTweet);
await tweetModel
.save()
.then(() => {
console.log("Tweet saved into DB");
})
.catch((err) => {
console.log(`Can't save into MongoDB because : ${err}`);
});
getStock(); // After Saving use Tweet to further process the Tweet. Retrieve from DB
})
.on("ping", () => console.log("ping"))
.on("error", (error) => console.log("error", error))
.on("end", (response) => console.log("end"));
};
в функции getStock () я выполняю манипуляции со строкой, чтобы удалить $ из твита и получить только первый экземпляр.
getStock = async () => {
await Tweet.findOne({}, {}, { sort: { created_at: -1 } }, function (
err,
post
) {
if (err) {
console.log("Cant find tweet " + err);
}
if (post) {
console.log(post);
console.log(`Tweet is ${post.text}`);
let splitted = post.text.split("$");
let final = splitted[1].replace(/[^a-zA-Z]+/g, "$");
let fin = final.replace(/[^a-zA-Z]+/g, " ");
if (fin.substr(0, fin.indexOf(" "))) {
fin = fin.substr(0, fin.indexOf(" "));
}
//Market Order
console.log("Executing Market Order for " + fin);
marketOrder(fin); // Pass the symbol further to execute an Order.
}
});
};
При выполнении функции marketOrder () возникает следующая ошибка.
Executing Market Order for aapl
events.js:187
throw er; // Unhandled 'error' event
^
TypeError: Cannot create property 'next' on string 'aapl'
at Function.handle (C:\JavaScript\Form\node_modules\express\lib\router\index.js:160:12)
at router (C:\JavaScript\Form\node_modules\express\lib\router\index.js:47:12)
at C:\JavaScript\Form\methods\getStock.js:24:7
at C:\JavaScript\Form\node_modules\mongoose\lib\model.js:4891:16
at C:\JavaScript\Form\node_modules\mongoose\lib\model.js:4891:16
at C:\JavaScript\Form\node_modules\mongoose\lib\helpers\promiseOrCallback.js:24:16
at C:\JavaScript\Form\node_modules\mongoose\lib\model.js:4891:16
at C:\JavaScript\Form\node_modules\mongoose\lib\helpers\promiseOrCallback.js:24:16
at C:\JavaScript\Form\node_modules\mongoose\lib\model.js:4914:21
at C:\JavaScript\Form\node_modules\mongoose\lib\query.js:4390:11
at C:\JavaScript\Form\node_modules\kareem\index.js:135:16
at processTicksAndRejections (internal/process/task_queues.js:75:11)
Emitted 'error' event on Function instance at:
at C:\JavaScript\Form\node_modules\mongoose\lib\model.js:4893:13
at C:\JavaScript\Form\node_modules\mongoose\lib\helpers\promiseOrCallback.js:24:16
[... lines matching original stack trace ...]
at processTicksAndRejections (internal/process/task_queues.js:75:11)
Я изо всех сил старался найти решение для этого, но не могу найти причину ... Я бы признателен, если кто-нибудь может помочь ...