gpt4 book ai didi

javascript - Express 服务器 - GET 请求返回 404(未找到)

转载 作者:行者123 更新时间:2023-12-01 03:55:34 25 4
gpt4 key购买 nike

我会切入主题...所以我尝试从我的 React (redux) 应用程序向我的服务器发出 GET 请求。据我所知,我已经正确设置了我的 Express 服务器(我的很多服务器都针对服务器端渲染进行了优化)

这是我的 redux 操作

import axios from "axios";

export function fetchTweets() {
return function(dispatch) {
dispatch({
type: "FETCH_TWEETS"
})
axios.get("/api/articles")
.then((response) => {
dispatch({
type: "FETCH_TWEETS_FULFILLED",
payload: response.data
})
})
.catch((err) => {
dispatch({
type: "FETCH_TWEETS_REJECTED",
payload: err
})
})
}
}

这是我的 Express 服务器

import path from 'path';
import express from 'express';
import webpack from 'webpack';
import middleware from './src/middleware';

const app = express();

//------------------------

if (process.env.NODE_ENV === 'development') {
const config = require('./webpack.config.dev');
const compiler = webpack(config);
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: config.output.publicPath,
stats: {
assets: false,
colors: true,
version: false,
hash: false,
timings: false,
chunks: false,
chunkModules: false
}
}));
app.use(require('webpack-hot-middleware')(compiler));
app.use(express.static(path.resolve(__dirname, 'src')));
} else if (process.env.NODE_ENV === 'production') {
app.use(express.static(path.resolve(__dirname, 'dist')));
}

app.get('*', middleware);

//---------------------------

//connect to mongo db
var db
const MongoClient = require('mongodb').MongoClient
MongoClient.connect('mongodb://###:###@ds123930.mlab.com:23930/halftimefront', (err, database) => {
if (err) return console.log(err);
db = database
console.log('db connected');
})


app.get('/api/articles', (req, res) => {
console.log("test");
var articles = [];
//var articles2 = [];
db.collection('articles').find().toArray().then(result => {
articles = articles.concat(result);
}).then(() => {
console.log(articles);
res.send(articles);
}).catch(e => {
console.error(e);
});
});



app.listen(3000, '0.0.0.0', (err) => {
if (err) {
console.error(err);
} else {
console.info('Listening at http://localhost:3000');
}
});

当我从 redux 操作发出 GET 请求时,它会在我的客户端控制台中返回该请求

GET http://localhost:3000/api/articles 404 (Not Found)

我在网上搜索后找不到问题的解决方案,对我来说 GET 请求看起来是正确的,也许我没有正确设置我的 Express 服务器?

感谢任何帮助或建议,提前谢谢您!

最佳答案

始终在列出所有其他路由之后放置 '*' 路由。

app.get('/api/articles', function() {});
app.get('*', middleware);

关于javascript - Express 服务器 - GET 请求返回 404(未找到),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42719785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com