其他网站的快递方

我有一个基本的Express应用程序,其中一个function使用nodejs请求,并使用select器使用一些div。 之后,我想用玉来渲染。

var express = require('express'); var voc = require('vocabulaire'); var async = require('async'); var router = express.Router(); router.get('/', function (req, res) { res.render('index', {title: 'Espace de la diffusion'}); }); var result; router.get('/search/:mot', function (req, res) { async.series([ function () { result = main(['conj', req.params.mot]); console.log('in 1'); }, function () { res.render('index', {title: 'Espace de la diffusion', data: result}); res.send(html); console.log('in 2'); }, ]); }); module.exports = router; var request = require('request') , cheerio = require('cheerio'); function doit(verbe, result) { var url = 'http://www.babla.ru/%D1%81%D0%BF%D1%80%D1%8F%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D1%84%D1%80%D0%B0%D0%BD%D1%86%D1%83%D0%B7%D1%81%D0%BA%D0%B8%D0%B9/' + verbe; request(url, function (err, resp, body) { $ = cheerio.load(body); var temps = $('.span4.result-left h5'); if (temps.length == 0) { console.log('results not found'); } else { console.log('result found'); debugger; return $('.span4.result-left'); } }); } function main(arg) { switch (arg[0]) { case 'conj': return doit(arg[1]); break; default: console.log('unknown parameter'); break; } } 

我使用asynchronous库,以确保我的结果已准备好呈现,但在控制台我看到下一个:

GET / search / est – – ms – –
在1
结果发现

和debugging器跟着我到nodejs函数makeTick()..我不知道该怎么办..请帮我。

您的async.series()函数缺less为了执行下一个函数而需要调用的callback参数。 但是,您并不需要async就可以执行一个单独的asynchronous任务:

 main(['conj', req.params.mot], function(err, result) { res.render('index', {title: 'Espace de la diffusion', err: err, data: result}); }); // ... function doit(verbe, result, callback) { var url = 'http://www.babla.ru/%D1%81%D0%BF%D1%80%D1%8F%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/%D1%84%D1%80%D0%B0%D0%BD%D1%86%D1%83%D0%B7%D1%81%D0%BA%D0%B8%D0%B9/' + verbe; request(url, function (err, resp, body) { if (err) return callback && callback(err); $ = cheerio.load(body); var temps = $('.span4.result-left h5'); if (temps.length == 0) { callback && callback(); } else { callback && callback(null, $('.span4.result-left')); } }); } function main(arg, callback) { switch (arg[0]) { case 'conj': doit(arg[1], callback); break; default: callback && callback(new Error('unknown parameter')); break; } }