Express Server - GET 请求返回 404(未找到)

djmcr

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

这是我的 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(未找到)

我已经在网上搜索过,无法找到解决问题的方法,对我来说GET请求看起来正确,也许我没有正确设置我的快递服务器?

任何帮助或建议表示赞赏,在此先感谢您!

维克拉玛蒂亚

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章