get data from async function





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















i'm trying to do a little website 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 gratefull or atleast give me some hints !



Here is my code made up from several ejs, nodejs begginers 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!')
})









share|improve this question























  • Have you tried to enable a provider? torrentSearchApi.enableProvider('Torrent9'); or specific provider?

    – shmit
    Nov 22 '18 at 23:19


















0















i'm trying to do a little website 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 gratefull or atleast give me some hints !



Here is my code made up from several ejs, nodejs begginers 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!')
})









share|improve this question























  • Have you tried to enable a provider? torrentSearchApi.enableProvider('Torrent9'); or specific provider?

    – shmit
    Nov 22 '18 at 23:19














0












0








0








i'm trying to do a little website 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 gratefull or atleast give me some hints !



Here is my code made up from several ejs, nodejs begginers 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!')
})









share|improve this question














i'm trying to do a little website 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 gratefull or atleast give me some hints !



Here is my code made up from several ejs, nodejs begginers 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!')
})






javascript node.js api web






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 22 '18 at 23:04









SliteSlite

2918




2918













  • Have you tried to enable a provider? torrentSearchApi.enableProvider('Torrent9'); or specific provider?

    – shmit
    Nov 22 '18 at 23:19



















  • Have you tried to enable a provider? torrentSearchApi.enableProvider('Torrent9'); or specific provider?

    – shmit
    Nov 22 '18 at 23:19

















Have you tried to enable a provider? torrentSearchApi.enableProvider('Torrent9'); or specific provider?

– shmit
Nov 22 '18 at 23:19





Have you tried to enable a provider? torrentSearchApi.enableProvider('Torrent9'); or specific provider?

– shmit
Nov 22 '18 at 23:19












1 Answer
1






active

oldest

votes


















1














Your search function is using async/await.
It means the search function is asynchrone and returns a Promise.
You should await its result (line 23).



https://javascript.info/async-await



https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function



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')


const search = async query => {
const loweredQuery = query.toLowerCase()
const torrents = await TorrentSearchApi.search(loweredQuery, 'All', 20)
return JSON.stringify(torrents)
}

app.get('/', (_, res) => res.render('index'))

app.post('/', async (req, res) => {
const torrents = await search(req.body.torrent) // Right here
const htmlTable = tableify(torrents)
res.render('results', htmlTable)
})

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})





share|improve this answer
























  • Thank you very much, will try this when i get home and i'll keep you posted if i understand right i must call an async function with await otherwise the promise wont be resolved ?

    – Slite
    Nov 23 '18 at 9:01








  • 1





    The promise will be resolved either way, but without „await“ the execution of the program resumes before it is resolved

    – Patrick Hund
    Nov 23 '18 at 9:19












Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53438910%2fget-data-from-async-function%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














Your search function is using async/await.
It means the search function is asynchrone and returns a Promise.
You should await its result (line 23).



https://javascript.info/async-await



https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function



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')


const search = async query => {
const loweredQuery = query.toLowerCase()
const torrents = await TorrentSearchApi.search(loweredQuery, 'All', 20)
return JSON.stringify(torrents)
}

app.get('/', (_, res) => res.render('index'))

app.post('/', async (req, res) => {
const torrents = await search(req.body.torrent) // Right here
const htmlTable = tableify(torrents)
res.render('results', htmlTable)
})

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})





share|improve this answer
























  • Thank you very much, will try this when i get home and i'll keep you posted if i understand right i must call an async function with await otherwise the promise wont be resolved ?

    – Slite
    Nov 23 '18 at 9:01








  • 1





    The promise will be resolved either way, but without „await“ the execution of the program resumes before it is resolved

    – Patrick Hund
    Nov 23 '18 at 9:19
















1














Your search function is using async/await.
It means the search function is asynchrone and returns a Promise.
You should await its result (line 23).



https://javascript.info/async-await



https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function



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')


const search = async query => {
const loweredQuery = query.toLowerCase()
const torrents = await TorrentSearchApi.search(loweredQuery, 'All', 20)
return JSON.stringify(torrents)
}

app.get('/', (_, res) => res.render('index'))

app.post('/', async (req, res) => {
const torrents = await search(req.body.torrent) // Right here
const htmlTable = tableify(torrents)
res.render('results', htmlTable)
})

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})





share|improve this answer
























  • Thank you very much, will try this when i get home and i'll keep you posted if i understand right i must call an async function with await otherwise the promise wont be resolved ?

    – Slite
    Nov 23 '18 at 9:01








  • 1





    The promise will be resolved either way, but without „await“ the execution of the program resumes before it is resolved

    – Patrick Hund
    Nov 23 '18 at 9:19














1












1








1







Your search function is using async/await.
It means the search function is asynchrone and returns a Promise.
You should await its result (line 23).



https://javascript.info/async-await



https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function



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')


const search = async query => {
const loweredQuery = query.toLowerCase()
const torrents = await TorrentSearchApi.search(loweredQuery, 'All', 20)
return JSON.stringify(torrents)
}

app.get('/', (_, res) => res.render('index'))

app.post('/', async (req, res) => {
const torrents = await search(req.body.torrent) // Right here
const htmlTable = tableify(torrents)
res.render('results', htmlTable)
})

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})





share|improve this answer













Your search function is using async/await.
It means the search function is asynchrone and returns a Promise.
You should await its result (line 23).



https://javascript.info/async-await



https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function



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')


const search = async query => {
const loweredQuery = query.toLowerCase()
const torrents = await TorrentSearchApi.search(loweredQuery, 'All', 20)
return JSON.stringify(torrents)
}

app.get('/', (_, res) => res.render('index'))

app.post('/', async (req, res) => {
const torrents = await search(req.body.torrent) // Right here
const htmlTable = tableify(torrents)
res.render('results', htmlTable)
})

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 22 '18 at 23:30









BlitzBlitz

11115




11115













  • Thank you very much, will try this when i get home and i'll keep you posted if i understand right i must call an async function with await otherwise the promise wont be resolved ?

    – Slite
    Nov 23 '18 at 9:01








  • 1





    The promise will be resolved either way, but without „await“ the execution of the program resumes before it is resolved

    – Patrick Hund
    Nov 23 '18 at 9:19



















  • Thank you very much, will try this when i get home and i'll keep you posted if i understand right i must call an async function with await otherwise the promise wont be resolved ?

    – Slite
    Nov 23 '18 at 9:01








  • 1





    The promise will be resolved either way, but without „await“ the execution of the program resumes before it is resolved

    – Patrick Hund
    Nov 23 '18 at 9:19

















Thank you very much, will try this when i get home and i'll keep you posted if i understand right i must call an async function with await otherwise the promise wont be resolved ?

– Slite
Nov 23 '18 at 9:01







Thank you very much, will try this when i get home and i'll keep you posted if i understand right i must call an async function with await otherwise the promise wont be resolved ?

– Slite
Nov 23 '18 at 9:01






1




1





The promise will be resolved either way, but without „await“ the execution of the program resumes before it is resolved

– Patrick Hund
Nov 23 '18 at 9:19





The promise will be resolved either way, but without „await“ the execution of the program resumes before it is resolved

– Patrick Hund
Nov 23 '18 at 9:19




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53438910%2fget-data-from-async-function%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

ComboBox Display Member on multiple fields

Is it possible to collect Nectar points via Trainline?