AngularJs2学习心得之Not Found Collection

本文解决了一个在尝试远程获取JSON数据时遇到的NotFoundCollection'hero'notfound错误。通过删除本地模拟JSON数据的引用,成功实现了从远程服务器获取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照官网的教程写了对应的例子,其中json数据是利用的本地的,后来打算远程发送http请求获取json数据,结果遇到Not Found Collection 'hero' not found错误,

没有捕获详情错误信息的小伙伴们,一般是提示404,这是个坑,坑了我大半天,当我在半夜解决此问题时便欣喜若狂的写下了这篇文章,

解决方案是我们要将例子中的模拟的json数据的引入给删除便可使用我们自己的,不然会默认使用本地的json数据,我们要注掉

InMemoryWebApiModuleInMemoryDataService
图解过程:








这样便是我自己的数据了,哇哈哈,官网也不提醒下,坑死大爷我了。




### 可能的原因分析 在 UniApp 中遇到 `not found collection` 错误通常意味着应用程序尝试访问数据库中的某个集合,但由于某些配置错误或数据缺失而失败。以下是可能导致该问题的一些常见原因: 1. **MongoDB 数据库未启动** 如果 MongoDB 服务处于 `inactive (dead)` 状态,则任何试图连接到数据库的操作都会失败[^1]。 2. **集合名称拼写错误** 集合名称区分大小写,在代码中如果拼写了错误的集合名,就会返回找不到集合的错误。 3. **权限不足** 当前使用的数据库用户可能没有足够的权限来访问指定的集合。这需要检查用户的授权范围以及角色分配。 4. **网络连接问题** 如果应用运行在一个分布式环境中(例如云服务器),则可能是由于网络配置不当导致无法正常连接至 MongoDB 实例。 5. **URI 连接字符串不正确** 使用了错误的 URI 地址或者端口号设置有误也会引发此类异常情况。 6. **初始化脚本遗漏创建必要的表/集合作业** 若项目依赖于特定的数据结构却未曾执行过相应的建模语句,则同样会出现此状况。 --- ### 解决方案建议 #### 方法一:确认 MongoDB 是否正在运行 确保本地安装的服务已经激活并监听默认端口(通常是27017),可以通过命令行工具验证状态: ```bash sudo systemctl status mongod ``` 如果是远程部署环境,请登录目标机器重复以上操作;另外还需保证防火墙允许外部IP地址通过TCP协议到达相应端口。 #### 方法二:校验 API 请求路径准确性 仔细核对接口中涉及的所有参数定义是否一致,尤其是那些动态生成的部分。比如下面这段伪代码展示了如何利用 Node.js 的 mongoose 库查询文档实例: ```javascript const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true}); let db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); // 定义模式Schema var kittySchema = new mongoose.Schema({ name: String, }); kittySchema.methods.speak = function () { var greeting = this.name ? "Meow" : ""; console.log(greeting); }; // 创建模型Model var Kitten = mongoose.model('Kitten', kittySchema); // 查询记录 async function fetchRecords() { try{ let kittens = await Kitten.find({}); console.log(kittens); }catch(err){ console.log(`Error occurred while fetching records ${err}`); } } fetchRecords(); ``` 注意这里我们假设存在名为 `"test"` 的 DB 和 `"Kitten"` 的 Collection ,实际开发过程中应替换为自己项目的具体命名空间。 #### 方法三:审查身份认证机制有效性 对于生产环境下启用的安全措施来说,仅提供正确的主机信息还不够,还需要附加用户名密码凭证才能成功建立会话链接。修改后的示例如下所示: ```javascript mongoose.connect( 'mongodb://username:password@host:port/database?authSource=admin', { useNewUrlParser: true }); ``` #### 方法四:调试日志定位确切位置 增加详细的打印输出有助于快速锁定故障源头所在区域。可以考虑引入 Winston 或 Bunyan 类型的日志管理框架辅助完成这项工作。 #### 方法五:重新审视架构设计合理性 最后一步就是回顾整个系统的逻辑流程图,思考是否存在更优解法能够规避当前困境的同时提升整体性能表现。例如采用缓存策略减少频繁读取原始存储带来的开销等等... --- ### 总结说明 综上所述,解决 UniApp 报告 “Not Found Collection” 错误会涉及到多个层面的因素考量。从基础层面上看要先保障底层设施完好可用;接着逐级向上排查直至最终确定根本诱因为止。希望上述指导可以帮助您尽快恢复功能正常使用!
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值