概述
今天复盘node.js的请求转发写法
在往上找了一篇文章摘抄了教程
https://www.jianshu.com/p/6356f4c928c1
代码如下:
serverA.js
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send({data: {code: 200, success: true, list: [1, 2, 3]}});
});
app.listen(8091);
serverB.js
var express = require('express');
var request = require('request');
var app = express();
app.use('/', function(req, res) {
var url = 'http://localhost:8091' + req.url;
console.log(url, req.url);
request({
uri: url,
method: 'GET',
json: true,
}, function(_err, _res, res_body){
console.log('res, body', _res, res_body);
_res.json(res_body);
})
});
var server = app.listen(8092,()=>{
console.log('the server is started! running 8092');
})
不辱使命,果然报错了res.json is not a function
我查了一篇文章,博主说这种情况一般是变量名相同,导致变量用混了。。。
所以经过尝试,发现 正确的写法应该是:
var express = require('express');
var request = require('request');
var app = express();
app.use('/', function(req, res) {
var url = 'http://localhost:8091' + req.url;
console.log(url, req.url);
request({
uri: url,
method: 'GET',
json: true,
}, function(_err, _res, res_body){
console.log('res, body', _res, res_body);
res.json(res_body); // 这边的res是指app.use上边的回调函数参数res 而非当前的_res
})
});
var server = app.listen(8092,()=>{
console.log('the server is started! running 8092');
})
最后
以上就是灵巧豆芽为你收集整理的node.js请求转发 报错 res.json is not a function的全部内容,希望文章能够帮你解决node.js请求转发 报错 res.json is not a function所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复