当我在post操作上执行res.json(newschema)时,这些属性不再在Postman和Mongodb中显示。

这是formations.routes

const express = require('express');
const router = express.Router();
const Formation = require('../models/formations');
const mongoose = require('mongoose');


const config = require('../config/database');





router.get('/', function(req, res){
//Formation.getFormations(function(err, formations){
   // if(err)throw err;
  //  res.json(formations);
//});
Formation.find({})
.exec(function(err, Formations){
    if(err){
        console.log('error');
    }else{
        res.json(Formations);
    }
})
});



router.post('/', function(req, res){
    console.log('post a formations');
    var newFormation = new Formation();
    newFormation.title = req.body.title;
    newFormation.url = req.body.url;
    newFormation.description = req.body.description;
    newFormation.save(function(err, newFormation){
        if(err){
            console.log('error insertion');
        } else {
            res.json(newFormation);
            //res.json({success: true, msg:'user registred'});
        }
    });
});


这是formation.models

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const config = require('../config/database');


const FormationSchema = mongoose.Schema ({
    title:  String,
    url: String,
    description:  String



});
module.exports = mongoose.model('Formation', FormationSchema, 'Formations');


这是我的app.js(端点)

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');

const User = require('./models/user');
const Formation = require('./models/formations');



mongoose.connect(config.database ,  { useNewUrlParser: true });
mongoose.connection.on('connected', () => {
console.log('connected to database... ' + config.database);
});

mongoose.connection.on('error', (err) => {
console.log('database error'+err);
});




/*mongoose.connect('mongodb://localhost:27017/hello', { useNewUrlParser: true });
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
    console.log('we are connected!');

});*/



const app = express();
const users = require('./routes/users');
const formations = require('./routes/formations');

//port number
 const port = 3001;

//cors middleware
 app.use(cors({
     origin: 'http://localhost:4200'
 }));
 //passwport middelware
 app.use(passport.initialize());
 app.use(passport.session());
 require('./config/passport')(passport); //pour implémenter fichier passport.js

 //set static folder
 app.use(express.static(path.join(__dirname + '/public')));




//BodyParser middleware
app.use(express.json());
app.use(bodyParser.json());
app.use('/users', users);//hedhiya ki nekteb /users barka f url yemchili direct lel const users = require('./routes/users'); fichier hedhka

app.use('/formations', formations);

//c un route
//just meloul 7atineha bch ntastiw beha
//index route
 app.get('/', function(req, res){
    res.send('invalid endpoint');
});



//start Server
app.use(bodyParser.urlencoded({extended:true}));

 app.listen(port, () => {
    console.log('Server started on port' +port);
 });


这就是我在Postman中进行后期处理的方式

最佳答案

save方法在回调中仅具有error参数。您将添加一个newFormations参数,该参数将始终是未定义的,并且在方法范围内,您将在res.json调用中返回未定义的参数。要解决此问题,请删除newFormation参数,如下所示:

newFormation.save(function(err){
    if(err){
        console.log('error insertion');
    } else {
        res.json(newFormation);
        //res.json({success: true, msg:'user registred'});
    }
});

10-06 15:13