nodejs的gridfs基本操作
- var mongoose = require('mongoose');
- var Schema = mongoose.Schema;
- mongoose.connect('mongodb://127.0.0.1/test');
- var conn = mongoose.connection;
- var fs = require('fs');
- var Grid = require('gridfs-stream');
- Grid.mongo = mongoose.mongo;
- conn.once('open', function () {
- console.log('open');
- var gfs = Grid(conn.db);
- // 写文件
- var writestream = gfs.createWriteStream({
- filename: 'mongo_file.txt'
- });
- fs.createReadStream('./local.txt').pipe(writestream);
- writestream.on('close', function (file) {
- console.log(file.filename + ' Written To DB');
- });
- var fs_write_stream = fs.createWriteStream('./write.txt');
- // 读取文件
- var readstream = gfs.createReadStream({
- filename: 'mongo_file.txt'
- });
- readstream.pipe(fs_write_stream);
- fs_write_stream.on('close', function () {
- console.log('file has been written fully!');
- });
- // 根据文件名称
- gfs.remove({filename: 'mongo_file.txt'}, function (err) {
- if (err) return handleError(err);
- console.log('success');
- });
- // 根据fs.files._id删除
- gfs.remove({_id : '548d91dce08d1a082a7e6d96'}, function (err) {
- if (err) return handleError(err);
- console.log('success');
- });
- // 判断文件是否存在
- var options = {filename : 'mongo_file.txt'}; // 使用_id也可以
- gfs.exist(options, function (err, found) {
- if (err) return handleError(err);
- found ? console.log('File exists') : console.log('File does not exist');
- });
- // 获取文件基础信息
- gfs.files.find({ filename: 'mongo_file.txt' }).toArray(function (err, files) {
- if (err) {
- throw (err);
- }
- console.log(files);
- });
- });
nodejs的gridfs基本操作的更多相关文章
- GridFS使用及配合nginx实现文件服务
Mongodb下GridFS使用及配合nginx实现文件服务 一.GridFS简介 GridFS是mongodb下用来存储文件的一种规范,所有官方支持的驱动均实现了GridFS规范. Mongodb本 ...
- nodejs 基本操作
查看nodejs版本 nodejs -v 升级nodejs node有一个模块叫n(这名字可够短的...),是专门用来管理node.js的版本的.首先安装n模块:npm install -g n 第二 ...
- 学习笔记之NodeJs基本操作
nodejs安装见文章:windows下安装node.js及less 运行js文件:node xxx.js 调用http模块,并指定端口为3000,向客户端输出<h1>Node.js< ...
- MySql数据库在NodeJS中简单的基本操作
阅读目录 一:连接数据库 二:数据的增删改查操作 2.1 数据库新增和查询数据 2.2 获取该数据的主键值 2.3 多语句查询 回到顶部 一:连接数据库 const mysql = require(' ...
- NodeJs对Mysql封装
之前在学习NodeJs的时候,每次操作数据库都需要连接数据库然后开始写Sql操作,这样非常麻烦,然后自己对Mysql进行了封装,一共100多行代码. github地址: Mysql操作 我在里面对My ...
- nodejs复习01
console 格式化 console.log("%s:%s", "a", "b") //字符串 console.log("%d. ...
- Nodejs之MEAN栈开发(三)---- 使用Mongoose创建模型及API
继续开扒我们的MEAN栈开发之路,前面两节我们学习了Express.Jade引擎并创建了几个静态页面,最后通过Heroku部署了应用. Nodejs之MEAN栈开发(一)---- 路由与控制器 Nod ...
- [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作
[.net 面向对象程序设计深入](6).NET MVC 6 —— 模型.视图.控制器.路由等的基本操作 1. 使用Visual Studio 2015创建Web App (1)文件>新建> ...
- 【NodeJS 学习笔记04】新闻发布系统
前言 昨天,我们跟着这位大哥的博客(https://github.com/nswbmw/N-blog/wiki/_pages)进行了nodeJS初步的学习,最后也能将数据插入数据库了 但是一味的跟着别 ...
随机推荐
- mxonline实战6 , 忘记用户密码时进行重置
对应github地址:密码重置 原理: 1. 一个需要输入用户邮箱和注册码的密码忘记页面 2. 点击提交后,用户邮箱收到一个邮件,包含重置密码的链接 3. 点击链接进入密码重置页面 ...
- Nginx采用yum安装-Carr
(1)使用yum安装nginx需要包括Nginx的库,安装Nginx的库 #rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx- ...
- Spring aop+自定义注解统一记录用户行为日志
写在前面 本文不涉及过多的Spring aop基本概念以及基本用法介绍,以实际场景使用为主. 场景 我们通常有这样一个需求:打印后台接口请求的具体参数,打印接口请求的最终响应结果,以及记录哪个用户在什 ...
- JVM调优总结 -Xms -Xmx -Xmn -Xss(转自:iteye unixboy)
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...
- Python库大全
网络 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络库(绑定libcurl). urllib3 – Pyth ...
- easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案
easy-mock本地部署成功后,迫不及待的想看看是否能正常访问,执行命令 npm run dev 启动项目,访问 127.0.0.1:7300 ,结果郁闷的是报错:EADDRNOTAVAIL 0.0 ...
- (五)Audio子系统之AudioRecord.stop
在上一篇文章<(四)Audio子系统之AudioRecord.read>中已经介绍了AudioRecord如何获取音频数据,接下来,继续分析AudioRecord方法中的stop的实现 函 ...
- Mac下使用crontab来实现定时任务
说明: 1.Linux和Mac下操作crontab都是一致的 2.配置文件都在/etc/crontab下,如果没有就创建. 3.测试发现直接使用crontab -e命令创建的定时任务是放在临时文件夹的 ...
- 使用大白菜安装Windows Server 2012 r2
依照往常安装win10的习惯操作,结果发现无GUI界面.重装时注意到了两个问题: 1. 启动时有两个U盘启动选项,请选择无UEFI的模式启动: 2. 一键安装系统时,一定要点一下系统文件来源的地方,因 ...
- SASS的安装和转换为CSS的方法
http://www.cnblogs.com/52css/archive/2012/08/19/sass-how-to-install-and-use.html SASS的安装方法: 1.先安装Rub ...