【发布时间】:2021-01-01 19:42:34
【问题描述】:
我正在尝试使用 MERN 堆栈创建项目,但遇到了此错误。我已经添加了代理做 JSON 文件,但仍然没有运气。
错误:
GET http://localhost:5000/posts net::ERR_CONNECTION_REFUSED
我的行动:
export const getPosts = () => async (dispatch) => {
try {
const {data} = await api.fetchPosts();
dispatch({type: 'FETCH_ALL', payload: data});
} catch (error) {
console.log(error.message);
}
// const action = {type: 'FETCH_ALL', payload: []}
// dispatch(action);
}
export const createPost = (post) => async (dispatch) => {
try {
const {data} = await api.createPost(post);
dispatch({type: 'CREATE', payload: data})
} catch (error) {
console.log(error);
}
}
我的路线/帖子:
const router = express.Router();
router.get('/', getPosts);
router.post('/', createPost);
export default router;
服务器控制器:
export const getPosts = async (req, res) => {
try {
const postMessages = PostMessage.find();
console.log(postMessages);
res.status(200).json(postMessages);
} catch (error) {
res.status(404).json({message: error.message});
}
}
export const createPost = async (req, res) => {
const post = req.body;
const newPost = new PostMessage(post);
try {
await newPost.save();
res.status(201).json(newPost);
} catch (error) {
res.status(409).json({message: error.message});
}
}
服务器 index.js:
const app = express();
//MIDDLEWARE
app.use(bodyParser.json({limit: "30mb", extended: true}));
app.use(bodyParser.urlencoded({limit: "30mb", extended: true}));
app.use(cors());
app.use('/posts', postRoutes);
const PORT = process.env.PORT || 5000;
mongoose.connect(CONNECTION_URL, {useNewUrlParser:true, useUnifiedTopology: true})
.then(()=> app.listen(PORT, () => console.log('Server running on port:', PORT)))
.catch((error)=> console.log(error.message));
mongoose.set('useFindAndModify', false);
客户端API索引:
const url = 'http://localhost:5000/posts';
export const fetchPosts = () => axios.get(url);
export const createPost = (newPost) => axios.post(url, newPost)
client.json:
{
"name": "osteoft",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:5000",
"dependencies": {
"@material-ui/core": "^4.11.2",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"axios": "^0.21.1",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-file-base64": "^1.0.3",
"react-redux": "^7.2.2",
"react-scripts": "4.0.1",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0",
"web-vitals": "^0.2.4"
},
我尝试配置连接时是否缺少某些内容?
【问题讨论】:
-
您是否创建了一个使用您的
app对象并监听PORT的服务器?你也可以分享那部分代码吗? -
就像我在服务器的 index.js 中一样。至少现在。但我想这现在应该可以工作了,因为我需要测试我的帖子是否进入数据库
-
您能否在服务器 index.js 的末尾添加
const http = require('http'); const server = http.createServer(app); server.listen(PORT);,然后再次尝试发送请求? -
它告诉我“require”函数没有定义:|
-
我刚刚编辑了我的服务器 index.js。这里缺少具有 app.listen 的 mongoose 连接