gpt4 book ai didi

mongodb - `mongolab` - 发布时出错,无法发布数据

转载 作者:可可西里 更新时间:2023-11-01 09:54:53 27 4
gpt4 key购买 nike

我在 mongolab(mlab) 上有一个帐户。我正在尝试使用 chrome 浏览器中的 postman 附加组件为用户发布数据。我总是收到错误。我无法发布数据。我尝试过其他不同的方法。但没有运气。

有人帮我解决这个问题吗?

这是我的 api.js :

var
User = require('../models/user'),
config = require('../../config'),
secretKey = config.secretKey;


module.exports = function( app, express ) {

var api = express.Router();

api.post('/signup', function (req, res) {

var user = new User({

name:req.body.name,
username:req.body.username,
password:req.body.password

});

user.save(function(err){

if(err){
res.send(err);
return;
}

res.json({message:'User has been Created!'});
});
});


api.get('/users', function(req, res) {

User.find({}, function( req, users){
if(err) {
res.send(err);
return;
}

res.json(users);
})

});

return api;

}

config.js :

module.exports = {
"database":"mongodb://xxx:xxxx@ds015700.mlab.com:15700/arifstory",
"port" : process.env.PORT || 3000,
"secretKey" : "YourSecretKey"
}

还有 user.js :

var
mongoose = require('mongoose'),
Schema = mongoose.Schema,
bcrypt = require('bcrypt-nodejs');


var UserSchema = new Schema({

name : String,
userName:{ type:String, required:true, index : { unique: true }},
password : { type:String, required : true, select : false }

});

UserSchema.pre('save', function(next) {

var user = this;

if(!user.isModified('password')) return next();

bcrypt.hash( user.password, null, null, function(err, hash) {
if(err) return next(err);

user.password = hash;
next();
});

});

UserSchema.methods.comparePassword = function( password ) {

var user = this;

return bcrypt.compareSync(password, user.password);

}

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

我真的无法理解这里的问题。请任何人帮助我?

错误

{
"message": "User validation failed",
"name": "ValidationError",
"errors": {
"userName": {
"message": "Path `userName` is required.",
"name": "ValidatorError",
"properties": {
"type": "required",
"message": "Path `{PATH}` is required.",
"path": "userName"
},
"kind": "required",
"path": "userName"
},
"password": {
"message": "Path `password` is required.",
"name": "ValidatorError",
"properties": {
"type": "required",
"message": "Path `{PATH}` is required.",
"path": "password"
},
"kind": "required",
"path": "password"
}
}
}

最佳答案

从 chrome 发送的数据可能是未定义的。

通过在 api.js 文件中包含 user.save 函数上方的以下两行,在控制台中打印它:console.log(req.body.username);console.log(req.body.password);

如果它显示为未定义,请确保在 Postman 的“body”下检查“x-www-form-urlencoded”并在其下提供用户名和密码。

关于mongodb - `mongolab` - 发布时出错,无法发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36395761/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com