Setting.js[用于保存数据库信息]
module.exports = { name : 'ZMessage', host : 'localhost' }
name为数据库名称,host为数据库访问地址。
DBHelper.js[具体访问数据库的方法]
function DBHelper(){ this.dbSetting = require('./DBSettings.js'); this.Db = require('mongodb').Db; this.Connection = require('mongodb').Connection; this.Server = require('mongodb').Server; this.GetDBExecutor = function(){ return new this.Db(this.dbSetting.name, new this.Server(this.dbSetting.host, this.Connection.DEFAULT_PORT, {}),{safe:false}); }; //获取所有用户信息 this.getAllUser = function(callback){ var executor = this.GetDBExecutor(); executor.open(function(err, db) { if (err) { return callback(err); } db.collection('UserInfo', function(err, collection) { if (err) { executor.close(); return callback(err); } collection.find({}).toArray(function(err,items){ executor.close(); items.forEach(function(item, index) { console.log(item.userName); }); }); }); }); } //添加用户信息 this.addUser = function(user,callback){ var executor = this.GetDBExecutor(); executor.open(function(err, db) { if (err) { return callback(err); } db.collection('UserInfo', function(err, collection) { console.log(4); if (err) { executor.close(); return callback(err); } collection.insert(user, {safe: true}, function(err, user) { executor.close(); }); }); }); } //添加用户信息 this.updateUser = function(user, callback){ var executor = this.GetDBExecutor(); executor.open(function(err, db){ if (err) { return callback(err); } db.collection('UserInfo', function(err, collection){ if (err) { executor.close(); return callback(err); } collection.update({ "userId": user.userId }, { $set: { userName: "更改后" } }, { saft: false, upsert: true }, function(err, user){ executor.close(); }); }); }); } //删除用户信息 this.deleteUser = function(userId,callback){ var executor = this.GetDBExecutor(); executor.open(function(err, db) { if (err) { return callback(err); } db.collection('UserInfo', function(err, collection) { if (err) { executor.close(); return callback(err); } collection.remove({"userId":userId},{saft:false},function(err, user) { executor.close(); }); }); }); } } module.exports = new DBHelper();
假设已经存在UserInfo集合。
app.js启动文件用于测试
var dbclient = require('./DBHelper/DBHelper'); dbclient.addUser({userId:3,userName:'李四',userStatus : false},function(err){ console.log(err); }); dbclient.getAllUser(function(err){ console.log(err); }); dbclient.updateUser({userId:3,userName:'李四',userStatus : true},function(err){ console.log(err); }); dbclient.deleteUser(3,function(err){ console.log(err); });
关于更新,有几种更新方式
Fields
$inc | Increments the value of the field by the specified amount. |
$rename | Renames a field. |
$setOnInsert | Sets the value of a field upon documentation creation during an upsert. Has no effect on update operations that modify existing documents. |
$set | Sets the value of a field in an existing document. |
$unset | Removes the specified field from an existing document. |
Array
Operators
$ | Acts as a placeholder to update the first element that matches the query condition in an update. |
$addToSet | Adds elements to an existing array only if they do not already exist in the set. |
$pop | Removes the first or last item of an array. |
$pullAll | Removes multiple values from an array. |
$pull | Removes items from an array that match a query statement. |
$pushAll | Deprecated. Adds several items to an array. |
$push | Adds an item to an array. |
Bitwise
$bit | Performs bitwise AND and OR updates of integer values. |
Isolation
$isolated | Modifies behavior of multi-updates to improve the isolation of the operation. |
相关推荐
5. **路由(Routing)**:在Node.js应用中,路由是定义URL与处理函数之间的映射,决定当用户访问特定URL时如何处理请求。在这个博客系统中,可能有如'/posts'、'/users'等路由,分别对应博客文章和用户管理功能。 6. ...
此外,权限管理可能涉及到角色基础的访问控制(RBAC),允许管理员和普通用户有不同的操作权限。 **部署与维护:** 为了部署JYBlog,开发者可能需要了解如何配置服务器环境,如设置Nginx反向代理,或者使用PM2进行...
7. **启动服务**:最后,启动Node.js服务器,访问指定端口,就可以看到运行中的博客系统了。 在实际开发中,你还需要考虑其他细节,如错误处理、用户认证、数据验证等。此外,为了提高用户体验,可以考虑添加分页、...
该项目的文件名称"Vue_nodejs_mongodb_community_governance-master"表明,源代码可能组织在一个名为"Vue_nodejs_mongodb_community_governance"的主目录下,"master"可能表示这是项目的主分支或者稳定版本。...
在本项目中,我们主要探讨如何使用Node.js和MongoDB构建一个简单的文件上传页面。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript得以在服务器端执行,而MongoDB则是一个流行的NoSQL数据库,...
后端使用以Node.js为基础的express框架,使用mongodb作为数据库为失物招领平台提供可扩展的高性能存储解决方案,使用七牛云对象存储来保存上传的图片,使图片成为外链可直接访问的网络图片,减少后端服务器的存储...
该压缩包文件“基于Vue+NodeJs+MongoDB失物招领系统设计源码案例设计.zip”提供了一个完整的失物招领系统的设计案例,利用现代Web开发技术栈,包括前端的Vue.js、后端的Node.js以及数据库管理系统MongoDB。...
## 开发工具: WebStorm 开发环境:Nodejs + vue + express + mongodb数据库 失物招领平台主要使用JavaScript作为开发语言,前端使用当前最热门的三大框架之一Vue,后端使用以Node.js为基础的express框架,使用...
该压缩包文件“基于Vue+Nodejs+MongoDB小区社区综合治理管理系统源码案例设计.zip”包含了一套完整的小区社区综合治理管理系统的源代码实现,利用了前端的Vue.js框架、后端的Node.js以及数据库管理系统MongoDB。...
`public`目录作为静态资源目录,存放CSS、JavaScript、图片等文件,它们可以直接被浏览器访问,无需经过服务器处理。 通过学习这个案例,你可以了解Node.js如何创建HTTP服务器、如何使用Express构建RESTful API、...
其优势在于快速插入和查询大量数据,支持复杂查询操作,同时提供了良好的水平扩展性,能够应对高并发访问场景。 项目结构可能如下: 1. `public` 文件夹:存放静态资源,如CSS样式表、JavaScript脚本、图片等。 2. ...
该毕业设计项目是一个完整的校园二手信息发布平台,采用现代前端框架Vue.js、后端服务器技术Node.js以及NoSQL数据库MongoDB构建。这个平台旨在为学生提供一个便捷、安全的环境,以便买卖二手物品,促进校园资源的...
5. **系统架构**:该系统采用B/S(Browser/Server)架构,用户通过浏览器访问编辑器,JavaScript处理前端交互,NodeJS处理后端逻辑,MongoDB存储数据。系统功能包括用户中心和模型设计两个模块。用户中心管理用户...
xAdmin基于Nodejs、MongoDB、React、Ant Design 可视化后台建模框架,自动生成后台UI、Restful接口安装环境Nodejs、MongoDB运行环境启动nodejsnpm startwebpack 打开运行页面,依次执行一下命令npm run build-dllnpm ...
NodeMongoDAL 带有 NodeJS 和 MongoDB 的基于 REST 的数据访问层版权所有 (C) 2014 乔尔萨克斯顿该程序是免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证(许可证的第 3 版或(由您选择)任何更高版本...
将 .zip 文件解压缩到您想要的位置(我的是 C:\dev\MongoDB) 将“C:\dev\MongoDB\bin”添加到 PATH 环境变量中,以便您可以从 CMD 访问 mongoDB 命令。 在安装目录中创建“data”文件夹(例如:C:\dev\MongoDB\...
在Express中,我们可以设置一个中间件,使得这些文件可以直接被浏览器访问。 `views`目录存储了应用的视图模板,通常使用EJS、Pug或Jade等模板引擎来编写。这些模板会被渲染成HTML,然后发送到客户端。 `webpro`...
使用 AngularJS、nodeJS 和 Mongodb 开发日历项目 从后端访问 JSON 数据 - nodejs 带有 Mongoose 后端的 NodeJS 服务来存储约会数据 使用 AngularJS 构建前端 - 日历指令 使用 Jasmine 和 Karma 测试指令和控制器的...
后端使用以Node.js为基础的express框架,使用mongodb作为数据库为失物招领平台提供可扩展的高性能存储解决方案,使用七牛云对象存储来保存上传的图片,使图片成为外链可直接访问的网络图片,减少后端服务器的存储...