如何修复节点服务器错误,npm ERR!代码 ELIFECYCLE npm 错误!错误1?

Posted

技术标签:

【中文标题】如何修复节点服务器错误,npm ERR!代码 ELIFECYCLE npm 错误!错误1?【英文标题】:How do I fix a node server error, npm ERR! code ELIFECYCLE npm ERR! errno 1? 【发布时间】:2020-09-18 06:48:34 【问题描述】:

npm 错误!代码生命周期 npm 错误!错误号 1 npm 错误! node-express@1.0.0 开始:node server npm 错误!退出状态 1 npm 错误! npm 错误!在 node-express@1.0.0 启动脚本中失败。 npm 错误!这可能不是 npm 的问题。上面可能还有额外的日志输出。

npm 错误!可以在以下位置找到此运行的完整日志: npm 错误! /Users/teevee/.npm/_logs/2020-05-30T18_42_30_526Z-debug.log

在我必须在我的项目中添加合作伙伴和促销路线之前,我没有遇到任何问题。我不知道如何调试此类错误以进行所需的更改。可能是什么问题?我还在学习。这是一个链接:https://github.com/TanishaV842/node-express/tree/master/routes

【问题讨论】:

您是否尝试清除 npm 缓存或删除 package-lock.jsonnode_modules 不确定,但看起来在您的routes/<type>Router.js 中,.route(/<path>) 代码也在您的主 server.js 代码中重复。你需要两个路由定义吗?似乎其中一种就足够了。 另外,查看您的 npm ERR! 日志上方的堆栈跟踪,这可能会引导您找到源代码中产生错误的行,并且在许多情况下,会告诉您抛出错误的原因。 【参考方案1】:

您遇到的一个问题是,您似乎在多个地方包含了路由器的代码:

// server.js

app.use("/campsites", campsiteRouter);
app.use("/partners", partnerRouter);
app.use("/promotions", promotionRouter);

campsiteRouter.route("/campsites").all(...);
partnerRouter.route("/partners").all(...);
promotionsRouter.route("/promotions").all(...);

没有必要这样做,只需执行app.use("/campsites", campsiteRouter); 并摆脱server.js 中的路由器代码。


其次,routers 中的代码在两个方面不正确:

// these are two different routes, so create a separate
// route for `/campsites/:campsiteId`,
// additionally, you don't want to do `/campsites/:campsiteId` 
// because you specified the `/campsite` route/portion inside of 
// your `server.js` file when you did 
// `app.use("/campsites", campsiteRouter)`, so only use `/:campsiteId`

// WRONG
campsiteRouter
  .route("/campsites")
  .all(...)
  .get("/campsites/:campsiteId", ...)

// CORRECT
campsiteRouter
  .route("/:campsiteId")
  .all(...)
  .get((req, res) => 
    console.log(req.params.campsiteId);
  )
  .post(...);

这是您的固定代码:

GitHub

希望这会有所帮助。

【讨论】:

是的,你是对的!我看到我的代码在我的路由器中不正确。所以我纠正了这个问题,但仍然有错误。然后我看到您对我的路由器代码在多个地方的回复。现在问题已经解决了。太感谢了!我当然学会并且知道以后不会犯同样的错误。【参考方案2】:

您似乎将常规 router.get()router.route().get() 方法参数混合在一起。

因为您使用的是router.route() 方法,所以您的:

.get() .post() .delete()

call 不能传入字符串和回调。它们只有一个回调函数。

修复,

更改所有router.route(...).get('<path>', (req, res) => )

类似于:

router.route(...).get((req, res) => )

无路径参数。

【讨论】:

以上是关于如何修复节点服务器错误,npm ERR!代码 ELIFECYCLE npm 错误!错误1?的主要内容,如果未能解决你的问题,请参考以下文章

我该如何修复(节点:5796)UnhandledPromiseRejectionWarning:错误[ERR_HTTP_HEADERS_SENT]:错误?

我该如何修复(节点:5796)UnhandledPromiseRejectionWarning:错误[ERR_HTTP_HEADERS_SENT]:错误?

在节点 js“应该设置秘密”和反应“npm ERR!代码 ELIFECYCLE”中出现错误

npm 错误!代码 1.为啥这个错误消息会发生 npm ERR!代码1?我该如何解决

节点错误 npm ERR! cb() 从未调用过

如何解决 npm 错误“npm ERR!代码 ELIFECYCLE”