我用的是Neo4j graphql。
在我的代码中看到这个异常而没有特定的行指示。
node:internal/process/promises:289
triggerUncaughtException(err, true /* fromPromise */);
^
[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "[object Array]".] { code: 'ERR_UNHANDLED_REJECTION' }
Node.js v20.3.0
1.我在**“graph-data-models.js”**中定义了图数据模型
...
const driver = neo4j.driver(
...
);
const ObjectGraphMap = new OGM({ typeDefs, driver });
const Challenge = ObjectGraphMap.model("Challenge");
...
- Express服务器位于**“app.js”**。服务器应该从这里开始。我运行
node app.js
。
...
try {
await ObjectGraphMap.init();
app.listen(port, () => {
logger.info(`Data API App listening at http://localhost:${port}`);
});
} catch(e) {
logger.error("OGM init failed",e);
}
- API定义在**“api.js”**中
...
app = express()
...
app.get("/challenges", getChallenges);
...
1.* *“api-impl.js”**中使用的数据模型
...
const getChallenges = async (req, res) => {
try {
...
Challenge.find({
... }
})
.then((challenge) => {
...
})
.catch((err) => {
...
});
} catch (error) {
...
}
}
...
在我看来,这不仅仅是一个尝试在所有地方捕捉包裹。如何调试并找出问题?OGM init需要一些更改,但然后在**“app.js”**上捕获模型。
...
ObjectGraphMap.init()
.then(() => {
...
})
.catch(() => {
...
})
...
并不能解决问题
1条答案
按热度按时间xvw2m8pv1#
我在回溯了我所做的所有步骤后发现了这个问题。不幸的是,这与我发布的任何细节都无关。部分原因是我花了这么长时间来调试。
然而,这并不是真正的解决方案。我在schema上添加了一个字段(用于示例化驱动变量
typeDefs
)。ObjectGraphMap.init()
失败可惜的是,Neo4j还没有与graphql灵活的模式集成。它可能没有那么糟糕,因为它可以变得非常动态和容易出错,而无需硬修复模式。**PS:**Stacktrace需要改进。实际上并不接受这个答案,因为ES上似乎有一些问题需要解决。检查这个out和这个too。