首页 > 解决方案 > app.use(express.json) 在 mongoose.connect 中不起作用

问题描述

我只是想知道。

为什么 app.use(express.json) 在 mongoose.connect 中不起作用?

代码1:

mongoose.connect(DB, { useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => {
        app.use('/items', itemsRouter);
        app.use(express.json());

        app.listen(3000, () => {
            console.log('server started');
        });
        
    })
    .catch(err => {
        console.log("error, database not connected or:", err.message);
    })

“itemsRouter.js”中的 console.log(req.body) 是“未定义”

代码2:

app.use(express.json())
mongoose.connect(DB, { useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => {
        app.use('/items', itemsRouter);

        app.listen(3000, () => {
            console.log('server started');
        });
        
    })
    .catch(err => {
        console.log("error, database not connected or:", err.message);
    })

但是当我把它放在 mongoose.connect 外面时(代码 2)。有用

标签: javascriptnode.jsmongodbexpressmongoose

解决方案


您只需将 experss.json() 代码放在要导入/定义路线的行上方。

    .then(() => {
        app.use(express.json());
        app.use('/items', itemsRouter);

        app.listen(3000, () => {
            console.log('server started');
        });
        
    })
    .catch(err => {
        console.log("error, database not connected or:", err.message);
    })

推荐阅读