详解node+mongoose+mongoDb(mongoDb安装、运行,在node中链接)

一、序言

好久没写博客了,这次主要聊聊 node 和 mongoDb 。 先说明一下技术栈  node + express + mongoose + mongoDb。这篇博客,主要讲述 mongoDb 的下载 、安装 、 配置 、 运行 以及如何在 node 项目中引入 mongoose 并 链接 mongoDb 操作数据库,最后再附带几个简单 创建 数据库、集合、域的实例。

二、目录

  1、 下载、安装 mongoDb

  2、 配置、运行 mongoDb

  3、 node项目中 链接 mongoDb

  4、 node项目中对 mongoDb 实现 数据库 集合 域的创建、编辑等操作

三、下载、安装 mongoDb

官方下载链接: https://www.mongodb.com/download-center#community下载 Windows 64-bit x64  msi 格式的,完事直接傻瓜式安装。或者你也可以选择 customs 自定义安装,去选择一些路径啥的

四、配置、运行 mongoDb

在任意没有中文的目录下新建文件夹,如c:\data,在文件夹下存放MongoDB数据库文件与日志文件,如:   ps: 当然你也可以不配置

  c:\dbData\db用于存放mongodb的数据文件

  c:\dbData\log用于存放mongodb的日志文件
 
创建配置文件

  打开MongoDB的安装目录如“C:\Program Files\MongoDB\Server\4\bin”,并在此目录下新建一个mongo.config文件,文件内容如下:
##数据库目录##
dbpath=C:\dbData\db

##日志输出文件##
logpath=C:\dbData\log\db.log

  在当前目录下,即 bin 目录下 打开命令行  输入 mongod --config "C:\Program Files\MongoDB\Server\4\bin\mongo.config" --install   回车

添加环境变量

  在计算机->属性->高级设置->环境变量->系统变量->Path 中加入"C:\Program Files\MongoDB\Server\4\bin"路径。

  然后在 bin 目录下  双击  mongo.exe 启动 MongoDB 服务

然后命令行 net start mongodb 就OK了

五、node项目中 链接 mongoDb

  比较简单,代码如下:

const mongoose = require(‘mongoose‘);

mongoose.connect(‘mongodb://localhost/mongodb‘);
mongoose.connection.on(‘connected‘, function(e) {
  console.log(‘connect success‘);
});
mongoose.connection.on(‘error‘, function(err) {
  console.error(‘MongoDB connection error: ‘ + err);
  process.exit(1);
});
mongoose.Promise = Promise;

  直接connect最简单的链接, MONGODB://IP:端口号/数据库名称, 注意格式和位置,mongoose 会判断,有这个数据库会直接连接,没有的话,会创建,再连接。connection.on 绑定上连接成功/失败的回调函数,直观的的告诉我们有没有连接成功。如果失败,检查IP和端口号,再检查MongoDB服务是否真的启动了。

  connect参数很多,一般项目中还是需要配置一下的,这个根据大家具体项目来配置了。比如:

module.exports = {
  production: {
    uri: ‘mongodb://localhost/db‘,
    option: {
      autoIndex: true,
      reconnectTries: Number.MAX_VALUE,
      reconnectInterval: 1000,
      poolSize: 10,
      bufferMaxEntries: 0
    },
  },
development: {
    uri: ‘mongodb://localhost/db-dev‘,
    option: {
      autoIndex: true,
      reconnectTries: Number.MAX_VALUE,
      reconnectInterval: 1000,
      poolSize: 10,
      bufferMaxEntries: 0
    },
  },
test: {
    uri: ‘mongodb://localhost/db-test‘,
    option: {
      autoIndex: true,
      reconnectTries: Number.MAX_VALUE,
      reconnectInterval: 1000,
      poolSize: 10,
      bufferMaxEntries: 0
    },
  }}[process.env.NODE_ENV || ‘development‘]

这样就连接好了。

六、node项目中对 mongoDb 实现 数据库 集合 域的创建等操作

  以上步骤我们就已经成功安装了MongoDB,并在node项目中成功连接 MongoDB 了,而且 mongodb://localhost/db   这个db就是你的数据库名称,在链接的时候,就已经将数据库建好了,接下来是对集合和域的创建。

直接举个例子:

  新建一个 MongoDB 的集合

const mongoose = require(‘mongoose‘);
const Schema = mongoose.Schema;
const ObjectId = Schema.ObjectId;

const schema = new Schema({
  name: { type: String, default: ‘‘ }, // 数据名称
  data: { type: String, default: ‘‘ }, //  数据内容
  createTime: { type: Date, default: Date.now },
})

module.exports = mongoose.model(‘SaveDate‘, schema);

  写 api 对集合进行操作

const express = require(‘express‘);const router = express.Router();const mongoose = require(‘mongoose‘);const SaveDate = require(‘../../models/saveDate.mongo‘)
router.post(‘/test/saveData‘, async (req, res, next) => {
  const body = req.body;
  try {
    if (!body.name){
      res.status(400).json({
        msg: ‘name is required‘
      });
    }else if (!body.data){
      res.status(400).json({
        msg: ‘data is required‘
      });
    }else {
      const saveDate = await SaveDate.create({
        name: body.name,
        data: JSON.stringify(body.data)
      });
      res.json({
        status: true,
        saveDate,
      });
    }

  }catch (e) {
    console.log(e)
    res.status(500).json({
      status: false,
      error: e,
    });
  }
});
 mongoose.model   Mongoose创建集合指令,他的参数是集合名称,以及一个Schema。将Schem映射到当前新建的集合中。也就是我们所谓的创建表啦。
 mongoose.Schema  Mongoose创建数据Schema指令,存放数据、定义数据类型。这个就是我们在sql里面 定义表中字段

通过这2步,就算新建好一个集合了,但是现在他是没数据的,接下来需要对集合进行 增删改查 的操作。
//集合中添加数据
const saveDate = await SaveDate.create({  name: body.name,  data: JSON.stringify(body.data)});// 查找集合的数据
const list = await SaveDate.find(condition).skip(pageSize * (current - 1)).limit(pageSize);
// 更新集合数据
await Instruction.update({ _id: body._id }, {  $set: set});
// 删除集合数据
await Instruction.remove({ _id: body._id });
 
以上是最基础的 增、删、改、查 指令,至于更加详细的 Mongoose 指令,这里就不详说了。根据你的需要现在已经实现最基础的操作数据库操作了。

七、 小结  这一套 node + express + Mongoose + MongoDB 技术栈,当中对 数据库 的操作部分就到此结束了。下面稍微总结一下,流程大致如下:

    首先下载、安装、配置、启动 MongoDB 服务     然后,运行node服务,并在代码中配置、连接MongoDB服务     最后,在 api 中,对集合进行操作

注: 差点忘记了,最后给大家安利一个 MongoDB 的桌面化软件,简单实用,官方下载链接:  https://robomongo.org/download  数据库还是有可视化工具方便。

  这篇博客讲的不深,主要是给初学者提供一个学习 node + MongoDB 自己搭建api服务的学习方向。我刚开始接触到时候没少走弯路。希望这篇文章能帮到大家。  博主热衷于向大家推送前端入门知识,喜欢的童鞋可以关注一下! ps:还有其他不错的博客,希望大家有好的代码我们可以一起讨论。

 

 

原文地址:https://www.cnblogs.com/pengfei-nie/p/9990154.html

时间: 2024-11-08 23:03:13

详解node+mongoose+mongoDb(mongoDb安装、运行,在node中链接)的相关文章

详解LAMP源码编译安装

实战:LAMP源码编译安装 家住海边喜欢浪:zhang789.blog.51cto.com 目录 详解LAMP源码编译安装 LAMP简介 一.准备工作 二.编译安装 Apache 三.编译安装 MySQL 四.编译安装 PHP 测试LAMP搭建开源数据web管理程序phpMyadmin 详解LAMP源码编译安装 LAMP简介 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装L

详解VMware 9.0.1安装MAC OS X 10.8(历时近3日感想篇)

突然心血来潮,想用VMware 9.0.1安装MAC OS X,但网上的文章多多少少总有点缺陷,不能适合每一个人,在综合了近30篇安装MAC OS X的文章后,我决定发布一篇比较大众化,比较详尽的MAC OS X安装过程. 一.准备工作: (1)虚拟机系统:vmware workstation 9,(或vmware player),请自行在网上下载. (2)vmware的MAC补丁包.如果你使用的是vmware10,请下载补丁包V1.20,如果是vmware8或9,请下载补丁包V1.10. (3

关于mongodb的安装运行

最近在学习node.js,在实例的项目中要用到mongodb做数据库.于是便记录一下mongodb的安装流程和遇到的坑: 1.下载地址:http://www.mongodb.org/downloads(32位还是64位自行选择).注:有解压版本,也有msi的安装版本都差不多. 2.解压或者安装把下载的包解压,我用的是msi的版本,安装后直接就在C:\Program Files\MongoDB 2.6 Standard里面 3.安装准备要设置MongoDB默认的数据目录.如果不用默认目录,每次启动

MongoDB下载+安装+运行

一. 官网下载安装 MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包. 下载地址:MongoDB官网-Community Server 选择适合自己平台的版本, 下载对应的安装文件 笔者下载的版本是: mongodb-osx-ssl-x86_64-3.6.5.tgz // 从 MongoDB 3.0 版本开始只支持 OS X 10.7 (Lion) 版本及更新版本的系统. MongoDB的安装: (以下安装操作均在终端中完成) 1. 选择适合和目录 由于是本机安装

详解“FTP文件传输服务”安装配置实例

"FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsftpd.conf配置文件详解 配置FTP服务器实例 实例:配置匿名用户 实例:配置本地用户登录 实例:配置虚拟用户登录(MySQL认证) 实例:控制用户登录 实例:设置欢迎信息 分析vsftpd日志管理 FTP服务器配置与管理 简介 FTP 是File Transfer Protocol(文件传输协议)的英文简

CentOs之yum详解及程序的编译安装

CentOs之yum详解 yum的地位:yum是rpm的前端管理工具,而且依赖于rpm.  yum仓库:yum repository,仓库里存储了众多rpm包,以及包的相关的元数据文件.yum仓库里会有个repodata目录存在. yum支持的文件服务器类型: ftp://  http:// file:///(本地服务器,例光盘)   /nfs:// 查看yum的信息: [[email protected]]# rpm -q yum ------查看yum命令的安装包是哪个 yum-3.4.3-

【Git使用详解】Egit插件的安装图解

Egit插件安装主要有在线和离线两种方式,下面就分别讲解一下两种方式的具体步骤. 一.在线安装 1.打开Eclipse的Help>Install New SoftWare 如图: 2.在弹出的界面中的Work with:中输入如下网址:http://download.eclipse.org/egit/updates然后等待资源的加载. 在加载出的软件列表中选择Eclipse Git Team Provider. 如图: 3.然后Next>Finish. 如图:   4.等待插件安装完成,重启E

详解使用Docker搭建Java Web运行环境

>Docker是干什么的 Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发, 源代码托管在 Github 上, 遵从Apache2.0协议开源.Docker的目标是实现轻量级的操作系统虚拟化解决方案. 学习Docker首先要了解几个概念: 镜像—Docker的镜像和常见的系统ISO镜像类似,包含了应用程序的信息: 容器—容器相当于一个可以运行起来的虚拟机,应用程序运行在容器中,Docker运行在“Docker”上: 仓库—仓库是存放

详解Sqoop的架构和安装部署

一.Sqoop是什么 Sqoop 是连接传统关系型数据库和 Hadoop 的桥梁.它包括以下两个方面: 1. 将关系型数据库的数据导入到 Hadoop 及其相关的系统中,如 Hive和HBase. 2. 将数据从 Hadoop 系统里抽取并导出到关系型数据库. Sqoop 的核心设计思想是利用 MapReduce 加快数据传输速度.也就是说 Sqoop 的导入和导出功能是通过 MapReduce 作业实现的.所以它是一种批处理方式进行数据传输,难以实现实时的数据进行导入和导出. 二.为什么选择S

详解HBase架构原理及安装部署步骤

一.什么是HBase HBase 是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群. HBase 是Google Bigtable 的开源实现,与Google Bigtable 利用GFS作为其文件存储系统类似, HBase 利用Hadoop HDFS 作为其文件存储系统:Google 运行MapReduce 来处理Bigtable中的海量数据, HBase 同样利用Hadoop MapReduce来处理HBase中的