当前位置: 首页 > 知识库问答 >
问题:

尝试获取Express和React连接时出现404错误

阳宗清
2023-03-14

我正在尝试获取一个简单的API请求来获取比特币值,在浏览器地址http://127.0.1:3000/中,在我的chrome浏览器中,我在浏览器上得到一个“无法获取/”,当我打开dev tools时得到一个404,上面写着“获取http://127.0.1:3000/404(Not Found)”。

当我访问http://127.0.0.1:3000/etf时,我得到了一个我需要的数据对象,所以我不认为这是axios的问题。

下面是我的package.json

{
  "name": "etfportfolio",
  "version": "1.0.0",
  "description": "Tool to use axios to get the MTD returns for ETFs managed in an ETF portfolio and compare to their benchmark of the S&P 500 and Barclays AGG.",
  "main": "server/server.js",
  "scripts": {
    "react-dev": "webpack -d --watch",
    "test": "test",
    "start": "nodemon --watch server/server.js",
    "build": "webpack --mode production"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/WDHudson/ETFPortfolio.git"
  },
  "author": "William Hudson",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/WDHudson/ETFPortfolio/issues"
  },
  "homepage": "https://github.com/WDHudson/ETFPortfolio#readme",
  "dependencies": {
    "axios": "^0.21.1",
    "babel-polyfill": "^6.26.0",
    "body-parser": "latest",
    "chart.js": "latest",
    "express": "latest",
    "json-server": "latest",
    "mathjs": "^7.1.0",
    "moment": "latest",
    "morgan": "latest",
    "path": "latest",
    "react": "latest",
    "react-dom": "latest"
  },
  "devDependencies": {
    "@babel/core": "latest",
    "@babel/preset-env": "latest",
    "@babel/preset-react": "latest",
    "babel-loader": "^8.2.2",
    "clean-webpack-plugin": "latest",
    "css-loader": "latest",
    "file-loader": "latest",
    "html-webpack-plugin": "latest",
    "nodemon": "latest",
    "style-loader": "latest",
    "webpack": "^4.21.0",
    "webpack-cli": "^3.1.2",
    "webpack-dev-middleware": "^3.4.0",
    "webpack-hot-middleware": "^2.24.3"
  }
}

下面是我的webpack.config.js

var path = require('path');
var SRC_DIR = path.join(__dirname, '/client');
var DIST_DIR = path.join(__dirname, '/public');

module.exports = {
  entry: `${SRC_DIR}/index.jsx`,
  output: {
    filename: 'bundle.js',
    path: DIST_DIR
  },
  module: {
    rules: [{ test: /\.jsx?$/, exclude: /node_modules/, loader: "babel-loader" }],
  }
};

下面是我的server.js文件

var express = require('express');
var bodyParser = require('body-parser');
const axios = require("axios");

var app = express();
app.use(express.static(__dirname));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.get('/etf', (req, res) => {
  console.log('check')
  axios.get(`https://api.coindesk.com/v1/bpi/historical/close.json?start=2019-08-07&end=2020-08-06`)
    .then(response => res.send(response.data.bpi))
    .then(res => console.log(res.body))
    .catch(err => console.log('error with app.get: ', err))
})


app.listen(3000, function () {
  console.log('listening on port 3000!');
});

module.exports = app;

下面是我的app.jsx文件

import React from 'react';
import axios from 'axios';

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      info: []
    }
  }

  componentDidMount() {
    axios.get('/etf')
      .then(res => this.setState({ info: JSON.stringify(res.data) }))
      .catch(err => console.log('error with axios.get: ', err))
  }

  render() {
    return (
      <div>
        <h1>TEST</h1>
      </div>
    )
  }
};

export default App;

共有1个答案

应瀚
2023-03-14

看起来您缺少了localhost:3000/的GET函数。

您可以尝试在server.js文件中添加该函数。

null

html prettyprint-override">app.get('/', (req, res) => {
 res.send('Test');
});
 类似资料:
  • 我正在尝试运行以下Sqoop命令: 然而,我得到了这个错误: 17/02/04 00:04:53 警告安全。用户组信息: 特权行动例外作为:avinash (身份验证:简单) 原因:java.io.文件不发现异常: 文件不存在: hdfs://localhost:9000/home/avinash/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib/slf4j-api-

  • 尝试连接到SQL服务器2014时出错。我使用JRE7和sqljdbc4-4.0.jar 以下是我的java代码: 以下是完整的堆栈跟踪: JAVAext.dirs:C:\Cisco\CallStudio\eclipse\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext-com。微软sqlserver。jdbc。SQLServerException:驱动程序无法使用安全

  • 因此,我正在制作一个简单的应用程序,其中我的代码连接到一个SQL Server Express数据库。我已经配置了所有的东西,JDBC、数据库、登录和密码。但是当我尝试运行代码时,我总是得到相同的错误。错误在于: 我目前正在使用VSCode进行开发,但是我已经改用了IntelliJ和Eclipse,我仍然得到同样的错误。 我的代码: 已导入JDBC jar

  • 我是php服务器端和mysql的新手,有了一些基本的知识,最近安装wamp服务器和一些php文件和数据库创建,我正在尝试将我的android应用程序连接到运行mysql数据库的本地主机(就像一些webservice一样)。 因此,在浏览器中,我在url地址空间中键入,它将显示wampserver主页 但当我键入时,它显示了某个错误页面,我将附加错误页面的屏幕截图 这是屏幕 因此任何人都可以告诉我为

  • 我跟着教程上了课 https://developer.atlassian.com/server/framework/atlassian-sdk/create-a-confluence-hello-world-macro/ 但当我尝试运行atlas并打开localhost:1990/confluence时,我得到了一个404错误。 我已经多次检查了我的java和sdk版本。Atlas 6.3.10

  • Boilerpipe是一个很好的Java程序,用于清理网页,我以前也使用过它。今天我注意到,许多用户无法安装Python包装器版本,并出现404和其他错误。这是我从康达那里复制的一个尝试。 /用户/邓肯 命令"pythonsetup.pyegg_info"失败,错误代码1在 /tmp/pip-r6swd0hy-build/ 我见过一些对我不起作用的解决方案(例如:谷歌改变了其模块的URL),如果有