0

Hey guys i am new to MEAN stack and i am trying to make a post request using Postman but it throws the error username not defined.. Connection with mongodb is done successfully and and works fine but it prompts undefined identifier username for user.username I'm unable to debug the error. I tried throwing post request using browser also but didn't help.

Code:

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');
});
4

2 回答 2

1

定义“用户”的更新代码

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

在控制台中,因为您在;中有多res.sendapp.post()只使用一个。

正如 Sandeep 所说,不要忘记取消注释user.save()。我用你的代码做到了这一点,从三个输入字段提交了文本,并且能够在我的集合“用户”中获得一个文档。

于 2018-12-16T15:43:26.063 回答
0
var user = new User({
  username: req.body.username,
    password: req.body.password,
    email: req.body.email,
});

这对你有用。

于 2018-12-16T14:45:25.050 回答