node.js - 快递应用程序未向 MongoDB 发送 POST 请求
问题描述
我正在使用 express 制作一个 CRUD api,并尝试通过 mongooseJS 连接到 MongoDB Atlas。问题是,每当我尝试发出 get 或 post 请求时,服务器都没有任何响应。服务器只是超时。
我在 MongoDB atlas 上创建了一个数据库,我的代码说它成功连接到数据库。
连接代码:
const db = require('mongoose');
db.connect(process.env.DB_QUERY, { // DB_QUERY is the connection query in .env file
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true
}, () => {
console.log('Successfully connected to Mongo DB');
});
我正在使用的架构(存储在 Item.js 中):
const db = require('mongoose');
const ItemSchema = db.Schema({
name: {
type: String,
required: true
},
price: Number,
category: String,
description: String,
ratings: {
type: Number,
min: 0,
max: 5,
default: 0
}
});
module.exports = db.model('Items', ItemSchema);
发布和获取路线:
const express = require('express');
const Item = require('../models/Item');
const router = express.Router();
router.get('/', async (req, res) => {
const items = await Item.find();
res.json(items);
});
router.post('/', async (req, res, next) => {
try {
const item = new Item(req.body);
const dbItem = await item.save();
res.json(item);
} catch (error) {
res.json(error);
}
});
module.exports = router;
更新:我删除了数据库连接中的回调函数,现在它给了我一个身份验证失败。我已经交叉检查了多次,用户名、密码和数据库名称都是正确的。
我已经在 MongoDB Atlas 的网络访问中将 0.0.0.0/0 列入白名单
解决方案
没关系。我创建了一个新用户来访问数据库,现在它神奇地工作了
推荐阅读
- notepad++ - 在记事本++中剪切并粘贴到特定的列行
- powershell - VSCode 新手,无法禁用侧边栏
- python - 如何使用 Flask 和 Sqalchemy 自动创建数据库表和模式?
- c# - c# editorconfig CA1062空值检查验证方法(用于保护子句)具有可为空的引用类型
- azure-devops - 管道中的 Azure DevOps 链接工作项
- java - 如何获取我存储在 Java 对象中的变量的已知值?
- datatable - 在powerapps中对同一列使用具有多个值的过滤器函数
- c# - C#如何递归搜索类型为x的对象
- python - 用二叉搜索树求解 S 表达式
- python - Python 3D Dataframe:按列对值进行排序并获得平均值