node-mongo封装
node 里面调用mongo封装了下。
mongo.js文件
const { MongoClient, ObjectId } = require('mongodb');
const mongourl = "mongodb://localhost:27017/";
const findMongo = (dbname, collection, where, req, res) => {
MongoClient.connect(mongourl, { useNewUrlParser: true, useUnifiedTopology: true }, function (err, client) {
if (err) throw err;
const db = client.db(dbname);
db.collection(collection).find(where).sort({ uptime: -1 }).toArray(function (err, datas) {
if (err) throw err;
res.writeHead(200, { "Content-Type": "text/plain; charset=utf8" });
res.end(JSON.stringify(datas));
//client.close();
});
});
return;
}
const insertMongo = async (dbname, collection, newdatas, req, res) => {
MongoClient.connect(mongourl, { useNewUrlParser: true, useUnifiedTopology: true }, function (err, client) {
if (err) throw err;
const db = client.db(dbname);
db.collection(collection).insertMany(newdatas, function (err, datas) {
if (err) throw err;
res.writeHead(200, { "Content-Type": "text/plain; charset=utf8" });
res.end(JSON.stringify(datas));
//client.close();
});
});
return;
}
module.exports = {
findMongo,
insertMongo
};
测试调用文件
const mongo = require('./mongo');
const { ObjectId } = require('mongodb');
const _ = require('lodash');
const main = async () => {
// const datas = mongo.findMongo("data", "wck", {"_id" : ObjectId("59e05df004fe65001b841ec7")});
// console.log(datas);
// const datas = mongo.updateMongo("data", "wck", {"_id" : ObjectId("59e05df004fe65001b841ec7")}, {contact:'cc'});
// console.log(datas);
// const datas = mongo.insertMongo("data", "wck", [{x:'x'},{y:'y'},{z:'z'}]);
// console.log(datas);
// const datas = mongo.deleteMongo("data", "wck", { "x": "x", "_id": ObjectId("5d91d0d5c5701e074d4174ed") });
// console.log(datas);
}
main();
可以在上面的基础上继续封装,然后把mongo数据数据库单独挂在一个服务器上或者是docker镜像上,通过url get put post 等方式访问更新操作。目前我正在封装这个,接口类似:
http://127.0.0.1:2323/?k=q&n=data&c=wck&w={"y":"y"}
注意安全问题,比如锁死ip。
node-mongo封装的更多相关文章
- 基于node/mongo的App Docker化测试环境搭建
搭建步骤: 1.宿主机环境 ubuntu 14.4宿主机环境(云主机): 安装wget与curl(sudo apt-get install wget curl)2.安装Docker (wget -q ...
- Vue/小程序/小程序云+Node+Mongo开发微信授权、支付和分享
大家好,我是河畔一角,今天给大家介绍我的第三门实战课程:基于微信开发的H5.小程序和小程序云的授权.支付和分享专项课程. 一.这一次为什么会选择微信支付和分享的课题呢? 金庸的小说中曾提到:有人的地方 ...
- Node教程——封装一个token验证器
重要说明 这个轮子是 使用 express@5.0 + MongoDB构建起来的一个 node后台通用的验证器,里面主要讲的就是使用jwt,token进行验证,当然你想使用session也没问题,但是 ...
- node.js封装数据库增删改查
数据库增删改查的封装 小编不容易 const sql = { insert: function (Collection, insertData) { return new Promise((resol ...
- framework7+node+mongo项目
Famework7还是一个不错的前端框架 不过这个小项目做下来确实踩了不少的坑 废话不多说上干货 项目代码:https://github.com/tsxylhs/framework7
- A chatroom for all! Part 1 - Introduction to Node.js(转发)
项目组用到了 Node.js,发现下面这篇文章不错.转发一下.原文地址:<原文>. ------------------------------------------- A chatro ...
- 为什么要使用 Node.js
这是一个移动端工程师涉足前端和后端开发的学习笔记,如有错误或理解不到位的地方,万望指正. Node.js 是什么 传统意义上的 JavaScript 运行在浏览器上,这是因为浏览器内核实际上分为两个部 ...
- Cocos2d-X3.0 刨根问底(五)----- Node类及显示对象列表源码分析
上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref.PoolManager.AutoreleasePool这三个类,了解了对象是如何自动释放的机制.之前有一个类 Node经常出现在各种 ...
- 在 Ubuntu 14.04/15.04 上配置 Node JS v4.0.0
大家好,Node.JS 4.0 发布了,这个流行的服务器端 JS 平台合并了 Node.js 和 io.js 的代码,4.0 版就是这两个项目结合的产物——现在合并为一个代码库.这次最主要的变化是 N ...
随机推荐
- python3 中post处理json 数据
使用详情如下 import json import requests headers = { "User-Agent": "Mozilla/5.0 (Windows NT ...
- rest framework renderers
渲染器 前TemplateResponse实例可以被返回给客户端,它必须被渲染.渲染过程需要模板和上下文的中间表示,并把它变成能够提供给客户端的最后一个字节流. - Django文档 REST框架包含 ...
- Java 集合框架体系总览
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 「CS-Wiki」Gitee ...
- vue 弹窗禁止底层滚动
原因:底层视图高度超出百分百,加入弹窗后再苹果浏览器隐藏上下栏的情况下遮罩层没有完全遮住底层. 处理:打开弹窗后禁止底层滚动调用stop事件,关闭则开启底层滚动调用move事件. let mo=fun ...
- editplus更改编码
1.在Tools下拉后选择Configure User Tools 2.在左边导航菜单找到File,对应右边视图中的Default encoding 3.将编码更改为utf-8,点击底部的OK保存.
- Python装饰器(2)
上一篇介绍了装饰器的常规使用方法,即函数形式的装饰器.这篇文章中,进一步介绍类class跟装饰器的相关知识. [用装饰器来装饰类函数] 这是今天介绍的第一种使用场景,比较常见.因为目前好多的编程语言都 ...
- java 集合 的理解
1.对象的存储:①数组(基本数据类型 & 引用数据类型) ②集合(引用数据类型) >数组存储数据的弊端:长度一旦初始化以后,就不可变:真正给数组元素赋值的个数没有现成的方法可用. 2.集 ...
- mysql最经典的语句
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- 程序员必须搞懂的20个Java类库和API
本文总结了日志.JSON解析.单测.XML解析.字节码处理.数据库连接池.集合类.邮件.加密.嵌入式SQL数据库.JDBC故障诊断以及序列化等20个方面的常用类库.都是你日常开发经常可能要用到的,现在 ...
- find文本处理(locate)实例学习记录
find文本处理(locate)实例学习记录 (一)按文件名称查找 按照文件名称查找是 find 最常见的用法,需要注意的是,搜索的文件名必须完全匹配,才能找到对应的文件. 1. 查找当前目录下所有 ...