我正在使用node.js,expressjs 4和mongoose。 我的猫鼬是:
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);
});
}; exports.getMachine = function(req,res){
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!' });
});
};
exports.deleteMachines = function(req,res){
Machine.remove(function (err, machines) {
if (err) {
res.send(err);
}
res.json("machines supprimées");
});
};
答案 0 :(得分:1)
您必须在函数和HTTP方法之间进行映射,例如:
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
在您的情况下,您将应用程序对象传递给路由器文件并执行以下操作:
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);
}