javascript - 使用express.static时会忽略其他端点

标签 javascript node.js reactjs

这是我的index.js 文件:

const express = require('express');
const mongoose = require('mongoose');
const Post = require('./models/Post');
const keys = require('./config/keys');
const path = require('path');

mongoose.connect(keys.mongoURI);

const app = express();

app.use(express.static(path.join(__dirname, '../react-app/build')));

app.get('/', (req, res) => {
   res.sendFile(path.join(__dirname, '../react-app/build', 
 'index.html'));
});

app.get('/posts', (req, res) => {
   Post.find({}, (err, posts) => {
     if(err) {
       console.log(err);
       res.sendStatus(500);
     } else {
       res.send(posts)
     }  

   })
 });

 const PORT = process.env.PORT || 5000;
 app.listen(PORT, () => console.log(`App listening on port ${PORT}`));

我已经将我的 React 前端构建到了 path.join 中指定的位置。但是,如果我使用app.use(express.static(...)),如果我使用任何路径,它总是会从我的构建中返回index.html。

我希望在到达“/posts”端点时看到 posts 对象,但它不起作用,并且如果没有快速静态,我无法让构建服务正常工作。

编辑: 我尝试在“/”处理程序中进行控制台日志记录,但它也没有记录任何内容。当我完全删除 app.use 行时,一切都正常了。有些教程使用了这种方法,为什么不起作用?

最佳答案

所以试试这个:

const express = require('express');
const mongoose = require('mongoose');
const Post = require('./models/Post');
const keys = require('./config/keys');
const path = require('path');

mongoose.connect(keys.mongoURI);

const app = express();

app.use(express.static(path.join(__dirname, '../react-app/build')));

app.get('/posts', (req, res) => {
   Post.find({}, (err, posts) => {
     if(err) {
       console.log(err);
       res.sendStatus(500);
     } else {
       res.send(posts)
     }  

   })
 });

app.get('/', (req, res) => {
   res.sendFile(path.join(__dirname, '../react-app/build', 
 'index.html'));
});

 const PORT = process.env.PORT || 5000;
 app.listen(PORT, () => console.log(`App listening on port ${PORT}`));

关于javascript - 使用express.static时会忽略其他端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50220977/

相关文章:

css - 样式应该在哪里使用react?

javascript - 检查 div 是否包含任何溢出的内联 block 跨度

javascript - 使用 $.ajax({}) 时 Express Session 不保存;

javascript - 如何将一个div分成四部分?

node.js - 如何全局卸载 npm 包 commitizen?

javascript - ObjectAssign 将 bool 转换为 object

javascript - Ionic AngularFire 实时数据库 - 更改推送条目的默认 UID

Node.js react 提供不正确的 Assets URL

javascript - 向请求添加 header 时出现 HTTP 状态代码 405 错误

javascript - 在状态更新期间避免组件内部的刷新功能