Heroku node.js部署

juud5qan  于 2022-11-13  发布在  Node.js
关注(0)|答案(2)|浏览(204)

这是我第一次用heroku部署node.js服务器,apis在本地很有趣,但是现在看起来heroku不会识别nodemon(sh:1:无恶魔:没有找到),这似乎是一个流行的问题,在论坛上,但我尝试了每一个评论,什么都没有。result
这是我包裹。杰森:

{
  "name": "backend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "start":"nodemon server",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.5",
    "dotenv": "^16.0.1",
    "express": "^4.18.1",
    "mongodb": "^4.8.0"
  },
  "engines":{
    "node":"14.x"
  }
}

这是索引。js:

import app from "./server.js"
import mongodb from "mongodb"
import dotenv from "dotenv"
import jobsDAO from "./dao/jobsDAO.js"
dotenv.config()
const MongoClient = mongodb.MongoClient

const port = process.env.PORT || 5000

MongoClient.connect(
    process.env.JOBSFINDER_DB_URI,
    {
        wtimeoutMS: 2500,
    }
)
.catch(err => {
    console.error(err.stack)
    process.exit(1)
})
.then(async client =>{
    await jobsDAO.injectDB(client)
    app.listen(port, () => {
        console.log("listening on port",port)
    })
})

这是服务器。js:
第一个

rqqzpn5f

rqqzpn5f1#

依赖项中缺少nodemon。请运行npm install nodemon将其添加到package.json

yvfmudvl

yvfmudvl2#

依赖项中缺少nodemon,需要使用npm install nodemon -D添加(-D用于将其保存到dev依赖项)
Nodemon通常用于未部署应用程序的开发环境。
看起来您是在index.js而不是server.js中启动服务器
我建议如下

  1. npm install nodemon -D
    1.将脚本更改为:
    "scripts": { "start":"node index.js", "start:dev": "nodemon index.js" "test": "echo \"Error: no test specified\" && exit 1" },
    要在本地运行应用程序,您可以用途:
  2. npm run start:dev这将使用nodemon并在保存更改时刷新服务器。
  3. npm start这将运行服务器(对生产有用)

相关问题