【发布时间】:2021-01-26 23:42:58
【问题描述】:
在弄乱我的护照会话并与它们一起实现 JWT 之后,我尝试运行我的应用程序,但遇到了一些我无法解决的错误:
ERROR TypeError: mongoose.connect 不是函数。 (在 'mongoose.connect(config.MongoURL, { useNewUrlParser: true, 使用统一拓扑:真, 使用FindAndModify:假 })', 'mongoose.connect' 未定义)
ERROR Invariant Violation:Module AppRegistry 不是注册的可调用模块(调用runApplication)
ERROR Invariant Violation:Module AppRegistry 不是注册的可调用模块(调用runApplication)
让错误让我有点困惑的是,与我的 mongodb 的连接实际上是成功建立的,因为我可以在 mongoose.connect() 函数之后的承诺中 console.log(data) 没有任何错误都被捕获。我还尝试访问我的服务器端(使用 Postman)并执行一些使用我的数据库的 Get 和 Post 功能,并且请求也成功完成!
至于其他两个错误我不知道它们是什么意思。
这是我的 db/index.js 以防万一:
const mongoose = require('mongoose');
const config = require('../config/index');
mongoose.Promise = global.Promise;
mongoose
.connect(config.MongoURL, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
})
.then((data) => {
console.log(data);
})
.catch((err) => {
console.error(err);
});
const db = mongoose.connection;
db.on('error', (err) => {
console.log(`There was an error connecting to the database: ${err}`);
});
db.once('open', () => {
console.log('connected');
});
module.exports = db;
【问题讨论】:
-
所有显示的代码都是服务器端代码,但是您将此问题标记为 React Native 并且显示的错误(不变违规:模块 AppRegistry)属于该域...您能否详细说明如何这个应用程序究竟是如何构建并启动的?
-
@raina77ow 是的,因为我一运行
npm start ios就会得到这些错误;该应用程序甚至无法正确构建。我只是不确定这是前端问题还是服务器端问题,因此标签和标题令人困惑。 'Invariant Violation' 错误是什么意思,也许我可以显示或解释相关代码 -
我认为这里发生的事情是 RN 也尝试加载
db/index模块(由于依赖关系或其他原因),但未能正确加载。实际上,所有其余代码都与该问题没有太大关系,因此请考虑将其删除。可能有用的是依赖关系树 - 即,当代码启动时会消耗该文件的内容。 -
我也认为这 - stackoverflow.com/questions/48053837/… - 部分相关。
-
@raina77ow 在阅读了我的前端登陆屏幕的导入后,我发现了一个我不记得使用过的可疑导入语句。我相信
import { states } from '../../server/db';也在尝试加载该 index.js 文件,但在这样做时遇到了问题(就像你说的那样)。非常感谢,应用程序现在构建。
标签: node.js react-native express mongoose passport.js