node 请求 php接口时,使用http模块,怎样拿到返回的数据?
发布于 8 年前 作者 lsfcode 5908 次预览 最后一次回复是 8 年前 来自 问答
const express = require(‘express’); const router = express.Router(); const http = require(“http”); router.get(’/’, function(req, res, next) { //发送请求 var request = http.request('http:test.test.com/getjson;,function(res){ res.setEncoding(‘utf8’); res.on(‘data’,function(chunk){ console.log(chunk); }); res.on(‘end’,(data)=>{ console.log(‘已无数据’);
})
});
//如果有错误会输出错误 request.on(‘error’, function(e){ console.log(‘错误:’ + e.message); }); request.end(); res.render(’/user/login’,chunk); }); module.exports = router;
在res.on('data')和res.on('end')中可以打印数据,但是怎样把数据返回来在最后 res.render()传回去呢?9 回复
是不是应该在
request.end();之前把数据返回参照朴大的《深入浅出NodeJS》,里面有专门讲 http 请求的章节,并特别关照了注意宽字节编码问题。
on('data')接受数据,on(end)处理数据请求使用 request , 然后, pipe 回去?
@noraincode 就是说 在end里面怎么返回数据?
@htoooth 在 end() 可以打印数据 但是怎么返回出来?
@DevinXian 就是说 在end() 方法里可以打印数据 ,但是怎么把它返回呢?返回到上一层用router的res.render(’/tpl’,data)这里渲染到模版去
@lsfcode 如果初学的话,用回调函数吧
@carlisliu 确实可以! 但是这个length的作用是什么?