我是nodejs和express的初学者。我尝试使用postman的POST方法但没有数据被发送。这是我的代码
var express = require('express');
var userRouter = express.Router();
var userModel = require('../models/usermodels');
userRouter.route('/users')
.post(function(req,res) {
var users = new userModel(req.body);
users.name = req.body.name;
users.age = req.body.age;
users.save();
res.status(200).send(users)
})
模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UsersSchema = new Schema({
name:String,
age:Number
});
var model = mongoose.model('Users',UsersSchema);
module.exports = model;
我的错误在哪里?
答案 0 :(得分:1)
您必须确保在定义路线之前定义所有配置。我认为您定义了之后以及之所以不起作用的原因。如果这样做,您可以继续使用express.bodyParser()。
答案 1 :(得分:0)
使用console.log进行调试,并在保存时使用错误回调
从邮递员发送数据时也使用 x-www-form-urlencoded (内容类型)选项
var express = require('express');
var userRouter = express.Router();
var userModel = require('../models/usermodels');
userRouter.route('/users')
.post(function(req,res) {
//check here if request receive
console.log("requessssssssssssssssssss");
//check the data receive
console.log("dataaaaaaaaaaaaaa", req.body);
var users = new userModel(req.body);
users.name = req.body.name;
users.age = req.body.age;
//check if any error
users.save(function(saveError){
if(saveError){
return res.status(400).send(saveError)
}else{
res.status(200).send(users)
}
});
})