【问题标题】:Express - Uncaught TypeError: Cannot read property 'prototype' of undefined, request.js 31Express - 未捕获的类型错误:无法读取未定义的属性“原型”,request.js 31
【发布时间】:2016-07-04 20:17:24
【问题描述】:

我花了太多时间尝试调试它,但不确定它来自哪里或为什么会出现此错误。 我正在尝试制作一个简单的网站来练习反应,并尝试从 Riot 的 API 获取一些数据。

我尝试使用 isomorphic-fetch,但遇到了 https 的问题,所以我切换到 express。

切换到表达后,我得到“未捕获的类型错误:无法读取未定义的属性'原型'。

如果这很重要,我也在使用 browserify-middleware。

这是导致问题的文件。

// import fetch from 'isomorphic-fetch';

// var myHeaders = new Headers();

var express = require('express')
var app = express();

var apiURL = 'https://na.api.pvp.net/api/lol/na/v1.4/';
var apiToken = '?api_key='


// export function fetchSummonerInfo() {
//  return fetch(apiURL + 'summoner/by-name/' + AUserName + apiToken, {
//      method: 'GET',
//      mode: 'no-cors'
//  })
//      .then((data) => console.log(JSON.stringify(data)))
//      // .catch((e) => console.log(e))
//      // .then((res) => console.log(res))
// }
// 

// app.use(function(req, res, next) {
//  res.header("Access-Control-Allow-Origin", "*");
//  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
//  next();
// })

export function fetchSummonerInfo() {
    app.get(apiURL + 'summoner/by-name/Faxious' + apiToken, middle,  function(req, res) {
        let body = ""
        res.on('data', function(data) {
            body += data;
        })
        res.on('end', function() {
            console.log(body);
        })
    })
}

function middle(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
}

【问题讨论】:

  • 你能发布完整的堆栈跟踪吗?
  • 您似乎正在尝试使用 Express 来发出请求,而不是接收请求。 app.get() 为 Express 服务器的 incoming GET 请求设置一个处理程序。您可能需要 http.request()/http.get()request 模块或类似模块来发出出站请求。
  • 我什至没有想到这一点。我们一直在使用 express 进行后端工作,我相信这就是我犯了 app.get() 会发出请求但没有发出请求的错误。 App.get 只接收一个请求,然后处理它,对吗?

标签: javascript node.js express reactjs


【解决方案1】:

Express 是一个 Web 框架,供您的后端处理请求并提供不执行请求的响应。看看路由指南here

如果您想提出要求,我可以推荐request 模块,我个人更喜欢我的项目,它非常简单。还有一些替代品,例如axios

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 2021-12-22
    • 1970-01-01
    • 2017-07-26
    • 2015-01-06
    • 2013-07-04
    相关资源
    最近更新 更多