node学习篇——mongoose

题外话:

             学习mongodb之后,算是了解了什么是非关系型数据库,然而每个操作时需要一直使用数据库连接的语句,即使封装起来也会很繁琐,因此如果能够选择一种驱动来操作mongodb,那node开发的效率及代码整洁度会更高。

    正文:

                从资料中了解到,通过java三大框架的思路将js的对象与数据库mongodb产生关系,并持久化。而这也颠覆了自己的数据库操作,因为学习mongoose之后,根本不需要操作数据库,也就是说没有db的写法。(如果自学估计会一脸懵逼几天)

             首先,通过http://mongoosejs.com/的官方文档我们可以自己使用hello world。然后就会发现全程都在创建类,实例化类,调用类,但是却是实实在在的出现在了数据库中。这便是用操作对象的方式操作数据库。

             接下来,便是mongoose的语法现象。

             1.数据库连接

              var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/test');

              2.定义模型

               var Cat = mongoose.model('Cat', { name: String });

              3.实例化类

               var kitty = new Cat({ name: 'Zildjian' });

              4.类方法的使用

                 kitty.save(function(err) {

if (err) {

console.log(err);

}else {

console.log('meow');

}});

              5.学习mongoose离不开Schema、model的操作
                Schema:指以文件形式存储的数据库模型骨架;

model:指定义模型,定义的模型会影响数据库。
创建Schema

var studentSchema = new mongoose.Schema({

    name     : {type : String},

    age      : {type : Number},

    sex      : {type : String}

});


定义Schema的静态方法

1.创建静态方法

studentSchema.statics.find = function(name, callback){

    this.model('Student').find({name: name}, callback);   //this.model('Student')指的是当前这个类

};

2.修改静态方法

studentSchema.statics.update =function(conditions,update,options,callback){

    this.model("Student").update(conditions, update, options,callback);

}

定义Schema的实例方法

1.创建实例方法

studentSchema.methods.find = function(name, callback){

    this.model('Student').find({name: name}, callback);   //this.model('Student')指的是当前这个类

};

2.修改静态方法
studentSchema.methods.update =function(conditions,update,options,callback){

    this.model("Student").update(conditions, update, options,callback);

}

















定义Schema的静态方法

1.创建静态方法

studentSchema.statics.find = function(name, callback){

    this.model('Student').find({name: name}, callback);   //this.model('Student')指的是当前这个类

};

2.修改静态方法

studentSchema.statics.update =function(conditions,update,options,callback){

    this.model("Student").update(conditions, update, options,callback);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Node.js中使用Mongoose接受上传文件,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了`multer`,这是一个Node.js中用于处理文件上传的中间件。你可以使用以下命令安装它: ```bash npm install multer ``` 2. 在你的Node.js应用程序中引入`multer`和`mongoose`模块: ```javascript const multer = require('multer');const mongoose = require('mongoose'); ``` 3. 创建一个用于保存上传文件的存储引擎。你可以使用`multer.diskStorage`创建一个将文件保存在磁盘上的存储引擎。在这个例子中,我们将文件保存在名为`uploads`的文件夹中: ```javascript const storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/'); }, filename: function (req, file, cb) { cb(null, file.originalname); } }); ``` 4. 创建一个`multer`实例,并将存储引擎传递给它: ```javascript const upload = multer({ storage: storage }); ``` 5. 创建一个Mongoose模型,用于表示上传的文件。你可以定义一个包含文件相关信息的模式,例如文件名、路径等: ```javascript const fileSchema = new mongoose.Schema({ filename: String, path: String, }); const File = mongoose.model('File', fileSchema); ``` 6. 在路由处理程序中使用`upload`中间件来处理文件上传。你可以在适当的路由处理程序中使用`upload.single`、`upload.array`或`upload.fields`来处理单个文件、多个文件或带有不同字段名的文件: ```javascript app.post('/upload', upload.single('file'), async (req, res) => { try { // 创建一个新的文件实例 const newFile = new File({ filename: req.file.originalname, path: req.file.path }); // 将文件保存到数据库 await newFile.save(); res.status(200).json({ message: '文件上传成功' }); } catch (error) { res.status(500).json({ error: '文件上传失败' }); } }); ``` 这样,你就可以使用Mongoose接受上传文件了。当你发送一个POST请求到`/upload`路由时,它将保存上传的文件到磁盘上的指定目录,并将文件信息保存到MongoDB数据库中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值