app.use(express.json)在mongoose.connect中不起作用

时间:2020-11-01 10:26:29

标签: javascript node.js mongodb express mongoose

我只想知道。

为什么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)。它有效

1 个答案:

答案 0 :(得分:1)

您只需要将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);
    })