无法 post 到 mongo db

Uable to post to mongo db

大家好,我是 MEAN 堆栈的新手,我正在尝试使用 Postman 发出 post 请求,但它抛出错误 username not defined.. 与 mongodb 的连接已成功完成,并且工作正常但它提示未定义的标识符用户名 user.username 我无法调试错误。我也尝试使用浏览器发出 post 请求,但没有帮助。

代码:

user.js

var mongoose = require('mongoose');
var schema = mongoose.Schema;

var UserSchema = new schema({
username : {type:String,lowercase:true,required:true,unique:true},
password : {type:String,required:true},
email : {type:String,required:true,unique:true}
});

module.exports = mongoose.model('User',UserSchema);

index.js(server.js)

//Variables------------------------------
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var morgan = require('morgan');
var mongoose = require('mongoose');
var User = require('./app/models/user');
var bodyParser = require('body-parser');
//---------------------------------------

//Configuration--------------------------
app.use(bodyParser.urlencoded({ extended: true })); // for parsing 
application/x-www-form-
app.use(bodyParser.json()); // for parsing application/json

app.use(morgan('dev'));

mongoose.connect('mongodb://localhost:27017/development',function(err){
 if(err){
 console.log('Not connected '+err);
}else{
 console.log('Connected to db');
}
});

//----------------------------------------

//Routes----------------------------
app.get('/', function(req, res) {
  res.send('Hello World with a post number'+port);
});

app.get('/home',function(req,res){
res.send('Hello from home');
});

app.post('/users',function(req,res){
var user = new User();
//res.send('This is working'+user);
user.username=req.body.username;
user.password=req.body.password;
user.email   =req.body.email;
//user.save()
res.send("username "+user.username);
res.send("password"+user.password);
res.send("email"+user.email);
res.send('User Registered!!!');
});

//-----------------------------------

app.listen(port,function(){
console.log('Running the server');
});
var user = new User({
  username: req.body.username,
    password: req.body.password,
    email: req.body.email,
});

这对你有用。

定义 'User'

的更新代码
var user = new User({
  username: req.body.username,
  password: req.body.password,
  email: req.body.email,
});

req.body.email.

后不应该有逗号

您也应该得到错误:

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

在控制台中,因为 app.post() 中有多个 res.send 行;只用一个。

正如 Sandeep 提到的,不要忘记取消注释 user.save()。 我用你的代码做到了这一点,从三个输入字段提交了文本,并且能够在我的 collection 'users.'

中获得一个文档