Node EADDRINUSE:使用jest和supertest测试时,地址已经在使用::: 3000

问题描述 投票:0回答:1

我正在尝试通过jest和supertest测试我的API端点:

我的测试路由文件:

const app = require('../../index') 
const request = require('supertest')


describe('test app endpoints', ()=>{
    test('index should return 200 code', async (done) =>{
        const response = await request(app).get('/')
        expect(response.statusCode).toBe(200)
        done()
    })

index.js:

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

const port = 3000


app.set('view engine', 'ejs')
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));

app.use('/', require('./routes/conversions'))

module.exports = app.listen(port, (err) => {
    if (err) throw err
    console.log(`Server is running on port ${port}`)
})

运行此测试时,我收到有关占用端口的错误:

listen EADDRINUSE: address already in use :::3000

如何解决此问题,并且不阻止我的端口进行测试?

javascript node.js jestjs supertest
1个回答
0
投票

计算机上的其他东西正在使用端口3000;就这样。只需将port变量设置为其他值即可; 8080和8000是受欢迎的选择。

© www.soinside.com 2019 - 2024. All rights reserved.