如何修复节点服务器错误,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.json
和 node_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”中出现错误