我正在开始一个新项目,当我运行nodemon服务器时,它似乎没有监听我指定的端口,并且立即退出。显然,当我尝试访问本地主机进行检查时,我只是从浏览器收到一条无法连接消息。
index.js
import app from "./server.js"
import mongodb from "mongodb"
import dotenv from "dotenv"
dotenv.config()
const MongoClient= mongodb.MongoClient
const port = process.env.PORT || 8000
MongoClient.connect(
process.env.RESTREVIEWS_DB_URI,
{
poolSize: 50,
wtimeout: 2500,
useNewUrlParse: true }
)
.catch(err => {
console.error(err.stack)
process.exit(1)
})
.then(async client => {
app.listen(port, () => {
console.log(`listening on port ${port}`)
})
})
restaurants.route.js
import express from "express"
const router = express.Router()
router.route("/").get((req, res) => res.send("Hello, world"))
export default router
服务器.js
import express from "express"
import cors from "cors"
import restaurants from "./api/restaurants.route.js"
const app = express()
app.use(cors())
app.use(express.json())
app.use("/api/v1/restaurants", restaurants)
app.use("*", (req, res) => res.status(404).json({ error: "not found"}))
export default app
我正在关注一个视频,所以不确定是否是因为我的版本不完全相同并且某些内容发生了变化或者问题可能是什么。
我将 index.js 文件更改为以下内容。
import app from "./server.js"
import mongodb from "mongodb"
import dotenv from "dotenv"
dotenv.config()
const MongoClient= mongodb.MongoClient
const port = process.env.PORT || 8000
MongoClient.connect(
process.env.RESTREVIEWS_DB_URI,
{
wtimeoutMS: 2500 }
)
.catch(err => {
console.error(err.stack)
process.exit(1)
})
.then(async client => {
app.listen(port, () => {
console.log(`listening on port ${port}`)
})
})
我删除了
poolsize
和 useNewUrlsParse
,因为它们不受支持,然后更改了 wtimeout
-> wtimeoutMS
,因为 wtimeout
已被弃用。经过这些更改后,一切都运行良好,nodemon server
。不确定这是否会在未来再次困扰我,但就目前情况而言,它已修复。