node.js - 如何使用 NodeJS MONGODB 修复“无法获取”
问题描述
我正在用邮递员测试一个简单的 Get api,但我得到“无法 GET”。
server.js(在根文件夹中)
```const express = require('express');
const mongoose = require('mongoose');
const items = require('./routes/api/items');
const app = express();
//body Parser middleware
app.use(express.json());
//Db config
const db = require('./config/keys').mongoURI;
//const db = "mongodb+srv://gkmm:123123123@cluster0-bo4ln.mongodb.net/test?retryWrites=true&w=majority"
//Connect to mongo
mongoose
.connect(db, { useNewUrlParser:true, useUnifiedTopology: true})
.then(() => console.log('MongoDB Connected...'))
.catch(err => console.log(err));
const port = process.env.PORT || 4000;
app.listen(port, () => console.log(`Server started on port ${port}`));
//Use routes
app.use('./routes/api/items.js', items);```
路线(根文件夹)/api/items.js
```const express = require('express')
const router = express.Router();
//Item Model
const Item = require('../../models/Item')
//@route GET api/items
//@des Get AAll Items
//access public
router.get('/', (req, res) => {
Item.find()
.sort({ date: -1})
.then(items => res.json(items));
});
module.exports = router; ```
在尝试测试我的 API 时遇到此错误,我检查了我的路径是否正确,我的数据库已连接。但我不知道为什么它返回 404 not found。
解决方案
查看您的代码后,@您要求应用使用您的路线的行
//Use routes
/* You are telling the route to go through e.g. <yoururl>/./routes/api/items.js/
in order to reach your GET in items.js
*/
app.use('./routes/api/items.js', items);```
要解决此问题,您可以编辑您的 app.use 以
app.use('/test', items) // test is just an example, you can change it to other keywords
然后访问您的项目 GET 路线使用“/test/”
推荐阅读
- jenkins - 多分支詹金斯作业中的管道文件名
- google-apps-script - 为什么脚本在执行 while 循环时卡住了?
- c++ - 从“int*”转换为“unsigned int”会丢失精度错误
- polymer - 此实验语法需要启用解析器插件:'optionalChaining'
- powerbi - 我一直在尝试在 PBI 中进行 rankx,但它一直返回“循环依赖”。
- python - 使用python根据匹配名称将值从csv写入xlsx文件
- jquery - 如何在 Laravel 中使用 JQuery Date 操作开始日期和恢复日期
- gnuplot - 在gnuplot中从x到y坐标绘制一个正方形
- ubuntu - 在 github 上浏览源代码时,Ubuntu 18.04 中显示的字体很奇怪
- google-api - 使用访问令牌查看报告