You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					50 lines
				
				2.2 KiB
			
		
		
			
		
	
	
					50 lines
				
				2.2 KiB
			| 
											3 years ago
										 |    [](https://coveralls.io/github/abskmj/gridfile?branch=master) [](https://github.com/abskmj/gridfile) | ||
|  | 
 | ||
|  | # GridFile - Mongoose Schema for MongoDB GridFS
 | ||
|  | GridFile is a reusable [Mongoose](https://mongoosejs.com/) schema for [MongoDB GridFS](https://docs.mongodb.com/manual/core/gridfs/). No separate database setup is needed as it uses the Mongoose connection for interacting with GridFS. | ||
|  | 
 | ||
|  | # Installation
 | ||
|  | ```bash | ||
|  | npm install gridfile | ||
|  | ``` | ||
|  | 
 | ||
|  | # Usage
 | ||
|  | - Import the schema | ||
|  | ```javascript | ||
|  | const schema = require('gridfile') | ||
|  | ``` | ||
|  | 
 | ||
|  | - Create a Mongoose model from the schema | ||
|  | ```javascript | ||
|  | const GridFile = mongoose.model('GridFile', schema) | ||
|  | ``` | ||
|  | 
 | ||
|  | - Upload a file | ||
|  | ```javascript | ||
|  | const fileStream = fs.createReadStream('/path/to/file.ext') | ||
|  | 
 | ||
|  | const gridFile = new GridFile() | ||
|  | gridFile.filename = 'file.ext' | ||
|  | await gridFile.upload(fileStream) | ||
|  | ``` | ||
|  | - Download a file | ||
|  | ```javascript | ||
|  | const fileStream = fs.createWriteStream('/path/to/file.ext') | ||
|  | const gridFile = GridFile.findById('id') | ||
|  | 
 | ||
|  | await gridFile.download(fileStream) | ||
|  | ``` | ||
|  | 
 | ||
|  | ## Examples
 | ||
|  | - [Upload files to MongoDB GridFS with Express](https://abskmj.github.io/notes/posts/express/express-multer-mongoose-gridfile/) - Create express based APIs to upload and download files to and from MongoDB GridFS | ||
|  | - [Mongoose Query Population with GridFile Schema](https://gist.github.com/abskmj/2dafbf3296ef5dc0c7a2054110c75e53) - Store email attachments on GridFS and link them to an email to support Mongoose query population | ||
|  | 
 | ||
|  | # Documentation
 | ||
|  | Documentation is available at [API.md](API.md) | ||
|  | 
 | ||
|  | # Fixes & Improvements
 | ||
|  | Head over to the issues tab at [github.com](https://github.com/abskmj/gridfile/issues) to report a bug or suggest an improvement. Feel free to contribute to the code or documentation by creating a pull request. | ||
|  | 
 | ||
|  | # Sponsor / Support
 | ||
|  | If you find the project interesting or helpful, please consider sponsoring or supporting it at [github.com](https://github.com/abskmj/gridfile). |