nodemon无法正常工作:npm start运行正常但API无响应
问题分析与解决方案
嘿,我一眼就瞅出问题所在啦!你看,你的npm start命令执行的是node ./bin/www,这才是你项目真正的服务器入口;但你直接敲nodemon的时候,它默认会去启动package.json里main字段指定的app.js——而很多Express项目里,app.js只是创建了Express实例,并没有启动端口监听的逻辑,真正启动服务器的是./bin/www文件,这就导致nodemon虽然看起来启动成功了,但其实根本没把服务器跑起来,API自然没法调用啦。
给你两个简单的解决办法:
- 临时方案:直接在命令行指定nodemon要启动的文件,运行这个命令就行:
nodemon ./bin/www - 长期方案:在package.json的scripts里加一个专门的开发命令,这样以后启动更方便:
修改你的scripts部分成这样:
之后你只需要敲"scripts": { "start": "node ./bin/www", "dev": "nodemon ./bin/www" }npm run dev,就能用nodemon自动重启你的服务器啦,和npm start的效果一致,还能享受nodemon的热重载。
另外你可以验证下:直接运行node app.js,你会发现同样没法调用API,这就确认了是启动文件不对的问题~
内容的提问来源于stack exchange,提问作者Anita
相关产品推荐
相关产品推荐

