我是靠谱客的博主 灵巧豆芽,最近开发中收集的这篇文章主要介绍node.js请求转发 报错 res.json is not a function,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天复盘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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部