Mongoose在Express、Koa、 Egg中的使用对比

本文介绍了Mongoose作为MongoDB的接口在Express、Koa和Egg三个Node.js框架中的使用。在Express和Koa中,Mongoose的使用基本相同,涉及初始化项目、安装依赖、连接数据库、定义数据模型和路由等步骤。而在Egg中,使用Mongoose需要更多的配置,如配置plugin.js和config.default.js,但更强调规范和统一。总结指出,尽管Mongoose的基本用法相似,但在Egg中的应用体现了框架自身的约定和规范性。
摘要由CSDN通过智能技术生成
Mongoose是什么?

简单一句话概括:Mongoose是一套操作MongoDB数据库的接口。

开始

在使用mongoose之前,需要事先安装好Node环境MongoDB数据库

以上准备就绪我们就可以了。

在Express Koa Egg中的使用

在Express中

首先初始化项目

npm init //初始化项目
npm i xxx --save//安装各种依赖例如express nodemon ...

目录如下

|-express
|  | -- db//启动mongodb数据库的dbpath路径
|  | --model//数据库中表的模型
|  | --node_modules
|  | --public//公共资源
|  | --route//路由
|  | --schema//模式类型
|  | --app.js//入口文件
|  | --package.json//配置文件

安装mongoose。

npm install mongoose//安装mongoose

在package.json

{
  "dependencies": {
    "body-parser": "^1.19.0",
    "connect-multiparty": "^2.2.0",
    "express": "^4.17.1",
    "formidable": "^1.2.2",
    "http-proxy-middleware": "^2.0.0",
    "mongoose": "^5.12.13",
    "multer": "^1.4.2",
    "multiparty": "^4.2.2",
    "nodemon": "^2.0.7",
    "xlsx": "^0.17.4"
  }
}

在app.js中引入依赖

const express=require("express");//引入express
const mongoose = require('mongoose');//引入mongoose
const app=express();
const port=8080;//端口号
mongoose.connect('mongodb://localhost:27017/Management',{useNewUrlParser:true,useUnifiedTopology:true},function(err){
    if(err){
        console.log('链接失败');
    }else{
        console.log('链接成功');   
    }
});//链接数据库名Mangagement端口号27017,取消数据库启动警告,

app.listen(port,()=>{
        	console.log(`Example app listening at http://localhost:${port}`)
        })

开启数据库
在安装mongodb/bin目录执行cdm
执行如下指令

$ mongod  --dbpath="数据库路径" --port=端口号
//例如
$ D:\Mongodb\bin> mongod  --dbpath="E:\myNode\Management\db" --port=27021

然后再E:\myNode\Management执行

nodemon app.js//如果成功控制台会打印
链接成功
Example app listening at http://localhost:8080
//说明数据库链接成功

链接成功我们可以对MongoDB数据库进行CURD操作

在schema文件夹下定义数据表模式类型

在schema/user.js

const mongoose=require('mongoose');
module.exports=new mongoose.Schema({
	Mailbox:String,
	UserName:String,
	Password:String,
	Password01:String,
	Name:String,
	Phone:Number,
	ContactAddress:String,
	Passport:String,
	ID:Number,
	Company:String,
	TouristGuide:String,
	GoAbroad:String
})

在model文件夹定义数据表模型

const mongoose=require('mongoose');
const userSchema=require('../schema/user.js')
module.exports=mongoose.model('User',userSchema)
//定义数据表名为User但是mongodb中的数据表名是Users

在route文件夹下定义路由

const express=require('express');
const multipart = require('connect-multiparty');//
const XLSX=require("xlsx")//读取elsx文件
const multipartMiddleware = multipart();

const router=express.Router();
const User=require('../model/user.js')
let userData;
router.use((req,res,next)=>{
	UserData={
		code:0,
		data:{},
		message:""
	}
	next();
})
//上传excal表
router.post('/uploadFile', multipartMiddleware, async function (req, res, next) {
	console.log("成功")
	console.log(req.files.file.path)
   let excelData = [];   //用来保存
   let reqData = [];
   const workbook = XLSX.readFile(req.files.file.path);//读取文件
   console.log(workbook)
  
   const sheetNames = workbook.SheetNames;//[sheet1]
  for (var sheet in workbook.Sheets) {
	  console.log(sheet)
    if (workbook.Sheets.hasOwnProperty(sheet)) {
      fromTo = workbook.Sheets[sheet]['!ref'];
	  console.log(workbook.Sheets[sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值