Можно публиковать в Монго БД - PullRequest
0 голосов
/ 16 декабря 2018

Привет, ребята, я новичок в стеке MEAN и пытаюсь сделать запрос на публикацию с помощью Postman, но он выдает ошибку, имя пользователя не определено. Соединение с mongodb выполнено успешно и работает нормально, но запрашивает неопределенный идентификатор пользователя для пользователя..username Я не могу отладить ошибку.Я попытался отправить запрос с помощью браузера, но это не помогло.

Код:

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

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Обновленный код, который определяет '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

в консоли, потому что у вас есть res.send строк в app.post();используйте только один.

Как упоминал Сандип, не забудьте раскомментировать user.save().Я сделал это с вашим кодом, отправил текст из трех полей ввода и смог получить документ в моей коллекции «пользователи».

0 голосов
/ 16 декабря 2018
var user = new User({
  username: req.body.username,
    password: req.body.password,
    email: req.body.email,
});

Это будет работать для вас.

...