I'm trying to do a little web site like sickgearr for my seedbox : I want a search form which will send a search query to my torrent providers using this API: https://github.com/JimmyLaurent/torrent-search-api
I managed getting text from the form, making the API calls and get results printed in the console, but when I try to pass them to the soon to-become result page, I'm only passing promises and I don't quite understand the principle of promises.
If someone could help me resolve my issues I'd be really really grateful or at least give me some hints!
Here is my code made up from several ejs, nodejs beginner's tutorials:
const express = require('express');
const bodyParser = require('body-parser');
const app = express()
const TorrentSearchApi = require('torrent-search-api');
const tableify = require('tableify');
TorrentSearchApi.enableProvider('Yggtorrent','Login', 'Password');
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: true }));
app.set('view engine', 'ejs')
async function search(query){ // Search for torrents using the api
var string = query.toLowerCase();
//console.log(string);
const torrents = await TorrentSearchApi.search(string,'All',20); // Search for legal linux distros
return(JSON.stringify(torrents));
}
app.get('/', function (req, res) {
res.render('index');
})
app.post('/', function (req, res) {
var rawTorrent = search(req.body.torrent);
var page = tableify(rawTorrent); //printing rawtorrent will only give me "promise"
res.render('results',page);
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})