mongodb mongoose getting `TypeError:user.save不是一个函数` -什么是错的

ecbunoof  于 2023-06-05  发布在  Go
关注(0)|答案(3)|浏览(183)

我试图将用户数据发布到mongodb,但我收到一个错误:
`TypeError:user.save is not a function' -如何修复此错误?
下面是我的代码:

var

    express     = require('express'),
    app         = express(),
    bodyParser  = require('body-parser'),
    mongoose    = require('mongoose'),
    PORT        = process.env.PORT || 8080;


//connect to db 

mongoose.connect('mongodb://3gwebtrain:admsin@ds147975.mlab.com:47975/family');

app.use( bodyParser.urlencoded({extended : true }));
app.use( bodyParser.json() );

app.get('/', function( req, res ) {

    res.json({message:'works'})

});

var Schema = mongoose.Schema;

var User = new Schema({

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

})

var apiRouter = express.Router();

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

        res.send( "yet to get users!");

    })
    .post('/users', function( req, res ) {

        var user = User;

        user.name = req.body.name;
        user.username = req.body.username;
        user.password = req.body.password;

        user.save(function(err) {

            if( err ) {

                console.log( err ); //TypeError: user.save is not a function

            }

            res.send("user created!");

        })

    })

app.use('/api', apiRouter);

app.listen( PORT );
console.log( 'app listens at ' + PORT );
2vuwiymt

2vuwiymt1#

首先从Schema创建模型:

var UserModel = mongoose.model('User', User);

然后在用户模型之外创建对象

var user = new UserModel(req.body)

然后调用

user.save(function(){})

查看文档http://mongoosejs.com/docs/api.html#model_Model-save

mec1mxoz

mec1mxoz2#

您还需要定义一个模型,将您的schema定义更改为:

var UserSchema = new mongoose.Schema({
name:String,
username:{type:String, required:true, index:{unique:true}},
password:{type:String, required:true, select:false}
})
var User = mongoose.model('User', UserSchema);

那你应该可以走了:)

gpfsuwkq

gpfsuwkq3#

Usermodel.collection.insertOne(values)

相关问题