npm ERR!代码ELIFECYCLE npm ERR! errno 1 npm ERR! node-express@1.0.0开始:
node server
npm ERR!退出状态1 npm ERR! npm ERR!在node-express@1.0.0启动脚本处失败。 npm ERR! npm可能不是问题。上面可能还有其他日志记录输出。npm ERR!可以在以下位置找到此运行的完整日志: npm ERR! /Users/teevee/.npm/_logs/2020-05-30T18_42_30_526Z-debug.log
在我必须为项目中的合作伙伴和促销添加路线之前,我没有任何问题。我不知道如何调试此类错误以进行所需的更改。可能是什么问题?我还在学习。这是链接:https://github.com/TanishaV842/node-express/tree/master/routes
答案 0 :(得分: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(...);
这是您的固定代码:
希望这会有所帮助。
答案 1 :(得分:0)
似乎您正在将常规router.get()
与router.route().get()
方法参数混合在一起。
由于您使用的是router.route()
方法,因此您:
.get()
.post()
.delete()
调用不能传递字符串和回调。它们只是一个回调函数。
要修复,
更改所有router.route(...).get('<path>', (req, res) => {})
类似于:
router.route(...).get((req, res) => {})
没有路径参数。