簡體   English   中英

不能 app.use 在我的 index.js 文件中使用兩個不同的路由器

[英]Can't app.use two different routers in my index.js file

您好,我正在嘗試創建一個反應應用程序,但我遇到了后端問題。

我有一個這樣的索引文件

const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')

const db = require('./db')
const bookRouter = require('./routes/book-router')
const userRouter = require('./routes/user-router')



const app = express()
const PORT = process.env.PORT || 8174

app.use(bodyParser.urlencoded({ extended: true }))
app.use(cors())
app.use(bodyParser.json())
app.use(express.json())

db.on('error', console.error.bind(console, 'MongoDB connection error:'))


app.get('/', (req, res) => {
    res.send('Hello People!')
})


//set up routes
app.use('/api', bookRouter) // the issue is here
app.use('/user', userRouter)
//commenting one of these lines makes the app work

app.listen(PORT, () => console.log(`Server running on port ${PORT}`))

所以我的應用程序不工作的原因是應用程序的錯誤。如果我將其中一個注釋掉,服務器運行正常,但如果我將它們都留在文件中未注釋掉,那么它們的應用程序將因此錯誤而崩潰

events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::8174
    at Server.setupListenHandle [as _listen2] (net.js:1280:14)
    at listenInCluster (net.js:1328:12)
    at Server.listen (net.js:1415:7)
    at Function.listen (/home/devinshawntripp/unt-library-system/server/node_modules/express/lib/application.js:618:24)
    at Object.<anonymous> (/home/devinshawntripp/unt-library-system/server/index.js:30:5)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
Emitted 'error' event at:
    at emitErrorNT (net.js:1307:8)
    at process._tickCallback (internal/process/next_tick.js:63:19)
    at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
[nodemon] app crashed - waiting for file changes before starting...

任何幫助都會很棒,謝謝!

未導入 userRouter。

你可以試試下面這樣的,

app.use('/api', (req, res, next) => {
    userRouter(req, res, next);
    bookRouter(req, res, next);
})

錯誤不是因為2個路由器引起的,而是因為端口已經在使用中。

Error: listen EADDRINUSE: address already in use:::8174

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM