简体   繁体   中英

app.use(express.json) doesn't work inside mongoose.connect

I just want to know.

why app.use(express.json) does not work inside mongoose.connect?

code 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);
    })

console.log(req.body) in "itemsRouter.js" is "undefined"

code 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);
    })

but when I put it outside mongoose.connect (code 2). it works

You just need to put the experss.json() code above the line where you are importing/defining the route.

    .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);
    })

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM