-1

我正在使用 node.js、expressjs 4 和猫鼬。我的猫鼬shema是:

var MachineSchema  = new mongoose.Schema({

serial_num: { type: String},
description: {type: String},
nature: {type: String, sparse: true},
mark: {type: String },
type: String,
history: {
        date: Date,
        action: String,
        description: String,
        specif_infos: {
            client: String,
            number: Number
        }
    },
purchase_date: {type: Date},
actual_owner: {
        first_name: {type: String},
        last_name: {type: String},
        phone: {type: Number},
        owner_address:
            {
                avenue: {type: String},
                city: {type: String},
                country: {type: String},
                postal_code: { type: Number}
            }
    },
actual_concess: {
        name: String,
        phone: Number,
        concess_address:
                {
                avenue: String,
                city: String,
                country: String,
                postal_code: { type: Number, min: 0, max: 99999}
            }
    }
});

我怎样才能发布一些数据?我尝试在 POSTMAN 中使用 raw 但不起作用!有什么想法吗?

对于我的控制器:machine.js

exports.postMachines = function (req, res) {

var machine = new Machine();

machine.serial_num = req.body.serial_num;
machine.description = req.body.description;
machine.nature = req.body.nature;
machine.mark = req.body.mark;
machine.type = req.body.type;
machine.history = req.body.history;
machine.purchase_date = req.body.purchase_date;
machine.actual_owner = req.body.actual_owner;
machine.actual_concess = req.body.actual_concess;

machine.save(function (err) {
    if (err) {
       res.json({ message: 'la machine ne peut pas être ajoutée'});*/
        res.send(err);
    } else {
        res.json({ message: 'machine ajoutée', data: machine});
    }
});

};

exports.getMachines = function (req, res) {

    Machine.find(function (err, machines) {
    if (err) {
        res.send(err);
    }

    res.json(machines);

});

}; export.getMachine = 函数(请求,资源){

Machine.findById(req.params.id, function (err, machine) {
    if (err) {
        res.send(err);
    }
    res.json(machine);
});

};

exports.getMachine = function (req, res) {

Machine.findOne(req.params.mark, function (err, machine) {
    if (err) {
        res.send(err);
    }
    res.json(machine);
});

};

exports.putMachine = function (req, res) {

Machine.findById(req.params.id, function (err, machine) {
    if (err) {
        res.send(err);
    }

    machine.history = [req.body.history];
    machine.actual_owner = req.body.actual_owner;
    machine.actual_concess = [req.body.actual_concess];

    return machine.save(function (err) {
        if (!err) {
            console.log("machine mise à jour");
        } else {
            console.log("erreur : " + err);
        }
        return res.json(machine);
    });
});

};

exports.deleteMachine = function (req, res) {

Machine.findByIdAndRemove(req.params.id, function (err) {
    if (err) {
        res.send(err);
    }
    res.json({ message: 'machine supprimée!' });
});

};

export.deleteMachines = 函数(请求,资源){

Machine.remove(function (err, machines) {
    if (err) {
        res.send(err);
    }

    res.json("machines supprimées");
});

};

4

1 回答 1

1

您必须在函数和 HTTP 方法之间进行映射,例如:

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('hello world');
});

在您的情况下,您应该将 app 对象传递给您的路由器文件并执行以下操作:

module.exports = function(app) {

postMachines = function (req, res) {

var machine = new Machine();

machine.serial_num = req.body.serial_num;
machine.description = req.body.description;
machine.nature = req.body.nature;
machine.mark = req.body.mark;
machine.type = req.body.type;
machine.history = req.body.history;
machine.purchase_date = req.body.purchase_date;
machine.actual_owner = req.body.actual_owner;
machine.actual_concess = req.body.actual_concess;

machine.save(function (err) {
    if (err) {
       res.json({ message: 'la machine ne peut pas être ajoutée'});*/
        res.send(err);
    } else {
        res.json({ message: 'machine ajoutée', data: machine});
    }
});
}

app.get('/machines',  getMachines);
app.post('/machines',  postMachines);
app.delete('/machines/:id', deleteMachines);
}
于 2015-03-12T23:09:52.520 回答