mongoose 为什么在VS Code上使用localhost:3000 Thunder客户端时会在处理时卡住?

wko9yo5t  于 2023-08-06  发布在  Go
关注(0)|答案(2)|浏览(125)

我是新的后端,我是以下的codewithharryReactjs课程。我做了和他一样的事情,但是当我在ThunderClient中获取请求时,它会在处理过程中卡住。但是当我在Chrome浏览器中使用该链接时,它工作正常。
vscode thunderclient
有人能帮我吗?
我的代码是:index.js:

const connectDB = require('./db');
connectDB();
const express = require('express')
const app = express()
const port = 3000

app.use(express.json())
//Available routes
app.use('/api/auth', require('./routes/auth'))
app.use('/api/notes', require('./routes/notes'))

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

app.listen(port, () => {
    console.log(`Example app listening at http://localhost:${port}`)
})

字符串
db.js:

const mongoose = require('mongoose');
const mongoURI = "mongodb://127.0.0.1:27017/inotebookdb"

const connectDB = async () => {
    try {
        await mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true });
        console.log("successfully connected");
    } catch (err) {
        console.log(err);
    }
}

module.exports = connectDB;

p1tboqfb

p1tboqfb1#

您的代码看起来是正确的,但您可以进行一项改进:将app.listen调用移动到connectDB功能中,以保证服务器仅在信息库关联有效建立后才启动。
更新代码:
index.js文件:

const express = require('express');
const app = express();
const connectDB = require('./db');
const port = 3000;

app.use(express.json());

app.use('/api/auth', require('./routes/auth'));
app.use('/api/notes', require('./routes/notes'));

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

connectDB().then(() => {
    app.listen(port, () => {
        console.log(`Example app listening at http://localhost:${port}`);
    });
}).catch((err) => {
    console.error('Failed to connect to the database:', err);
});

字符串
db.js

const mongoose = require('mongoose');
const mongoURI = "mongodb://127.0.0.1:27017/inotebookdb";

const connectDB = () => {
    return mongoose.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })
        .then(() => {
            console.log("Successfully connected to the database");
        })
        .catch((err) => {
            console.log("Error connecting to the database:", err);
            throw err;
        });
};

module.exports = connectDB;


在这个版本中,connectDB功能返回一个commitment,允许您在index.js中调用.then()和.catch()。这保证了服务器将在有效地布局数据集关联之后才开始调优。
此外,我在数据集关联过程中添加了一些错误,因此您将看到一条消息,以防数据集接口出现问题。
一定要介绍必要的条件,比如express、mongoose和其他一些你可以在课程和模型中使用的条件。您可以使用npm或yarn来引入它们:

npm install express mongoose


有了这些变化,你的后端应该可以准确地工作,你应该可以选择使用ThunderClient或其他一些编程接口客户端来提出要求,而不会在处理中拖延。

b4wnujal

b4wnujal2#

VS Code 1.81.0中有一个bug。降级到版本1.80.2
更多详情请访问https://github.com/rangav/thunder-client-support/issues/1251#issuecomment-1666439365

相关问题