send模块代码是这样的: var request=require(‘request’); var sendUrl=function(req,url){ console.log(‘请求参数:’); console.log(req.body); var opts={ url:url, form:req.body, headers: { ‘Cookie’: ‘JSESSIONID=’+req.session.resPonseId } }; var results={status:false,message:‘调用接口失败’}; console.log(opts.url); request.post(opts,function(err,response,body){ console.log(‘返回结果:’); if(!err && response.statusCode == 200){ if(body!==‘null’){ results=JSON.parse(body); } } }) return results; console.log(results) } module.exports=sendUrl;
在其它模块处调用: var results=sendUrl(url); 这块会显示:{status:false,message:‘调用接口失败’} 如何把request.post改成同步 的?
不能,这个还用同步的话,就没有使用 node.js 的价值了,还不如用其它的语言。python ruby .net java 都是同步的。
@klesh 那如果要在其它模块中调用,send.js模块应该怎么写?
最传统的就是 send 接收一个 callback 这段代码。。。没格式化看不真切,你下回发贴记得用三个反引号(Tab上面,Esc下面)把代码括起来,前后各三个。 估计是转发的意思吧? 大致上是这样:
库:
function sendUrl(url, cb) {
request.post(.., function(err, res, body) {
cb(body);
}
}
调用:
sendUrl(url, function(body) {
// deal with body.
})