【发布时间】:2021-10-30 06:06:01
【问题描述】:
我正在关注实施 MERN 的教程,但我遇到了以下错误: GET http://localhost:3000/hello 404 (Not Found) 我做的一切都是正确的,但我无法解决这个问题。以下是我的文件,任何人都可以形成社区帮助,以便我继续前进。我真的很感谢你的帮助。谢谢大家。
前端文件夹:App.js
import React, { Component} from 'react' ;
// import logo from './logo.svg';
import './App.css';
import axios from 'axios' ;
class App extends Component {
state = {
hello: null
}
componentDidMount() {
axios.get('/hello')
.then( res => this.setState({ hello: res.data }))
.catch( err => console.log(err) )
}
render() {
return (
<div>
{this.state.hello
? <div> {this.state.hello} </div>
: null }
</div>
);
}
}
export default App;
后端文件夹:App.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
//import the 'routes' file
var indexRouter = require('./routes')
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// use indexRouter
app.use('/', indexRouter);
module.exports = app;
路线
var express = require('express');
var router = express.Router()
router.get('/hello', function(req, res) {
res.json('hello world') ;
})
// this is exported to app.js in the Server folder
module.exports = router ;
前端文件夹:package.json
...
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"proxy": "http://localhost:5000", <==== pointing to localhost
"browserslist": {
"production": [
">0.2%",
...
【问题讨论】:
-
仅供参考,
res.json('hello world') ;应该是res.send('hello world') ;。 -
感谢您的更正,但这并没有帮助我解决 404 问题
-
我没有看到任何
app.listen(3000)你在适当的端口上启动你的服务器。 -
app.listen 位于名为 www 文件的主文件夹中。这个文件有端口号,这是放置
app.listen(5000)的地方。 -
就您的想象而言,我使用 express 生成器安装了 express,它会为您构建文件。