乐趣区

关于前端:mongooseexpress初入门

参考网址

菜鸟教程:https://www.runoob.com/mongod…
express:https://www.expressjs.com.cn/
mongoose:http://www.mongoosejs.net/

源码

github:https://github.com/nowRookie/…

1、下载 mongodb

1、mongodb 下载地址:https://www.mongodb.com/try/d…
2、mongodb 下载须要拜访外网
3、装置过程肯定不要勾选 install mongodb compass,图形工具,否则会很慢
4、配套应用的图形工具,我抉择的 robo3T,下载地址 https://robomongo.org/
5、设置环境变量,E:\mongodb\bin

2、疾速启动 mongodb

(1)通过.bat 批处理文件

新建一个.bat 后缀的文件,内容如下

E:cd E:\mongodb\bin
start mongod --dbpath=E:\mongodb\data
D:
cd D:\360download\Robo 3T 1.3.1
start robo3t.exe

(2)网上说能够通过装置开机启动,net start MongoDB,来启动,然而我没有胜利

3、根本我的项目 express + mongoose

1、新建文件夹 express
2、npm init,始终回车,初始 package.json
3、批改 package.json,装置对应的包

{
  "name": "app",
  "version": "1.0.0",
  "description": "","main":"index.js","scripts": {"start":"nodemon --exec babel-node ./app.js"// 我的项目热更新,启动我的项目应用 npm run start},
  "author": "","license":"ISC","dependencies": {"babel-cli":"^6.26.0",//es6 语法"babel-preset-env":"^1.7.0","body-parser":"^1.19.0","cookie-parser":"^1.4.5","cookie-session":"^1.4.0","cors":"^2.8.5","express":"^4.17.1","fs-extra":"^9.0.1","hbs":"^4.1.1","lodash":"^4.17.15","moment":"^2.24.0","mongoose":"^5.9.9","multer":"^1.4.2","nodemon":"^2.0.4",// 我的项目热更新"ueditor":"^1.2.3"}
}

4、新建.bablerc 文件

{"presets": ["env"]
}

5、新建 app.js,内容如下

import express from "express"
const app = express()
import path from "path"

import {port} from "./config"

// cors 跨域解决
import cors from "cors"
app.use(cors())

// body-parser 中间件
import bodyParser from 'body-parser'
app.use(bodyParser.json())

// middleware 打印 log 信息
import log from "./middleware/log"
app.use(log())

// 动态资源
app.set('view engine', 'hbs')
app.set("views", process.cwd() + "/template")
app.use(express.static("static"))
app.use(express.static("uploads"))
app.use("/virtual", express.static(path.join(__dirname, "static")))

// 路由
import router from "./router/index"
router(app)

// ueditor 百度文本编辑框
import ueditor from "./plugins/ueditor.js"
ueditor(app)

// mongoose 连贯
import mongoose from 'mongoose';
mongoose.set('useFindAndModify', false)
mongoose.connect('mongodb://localhost/websiteDB', {
  useNewUrlParser: true,
  useUnifiedTopology: true
});

// db 数据库
const db = mongoose.connection;
db.on('error', () => console.error('connection error:'));
db.once("open", () => {app.listen(port, () => console.log(`Example app listening on port ${port}!`))
})

6、其余

(1)mongo.exe 根本命令

//dbName:数据库名称
use dbName // 创立数据库

//sheetName:表名称
db.sheetName.insert({}) // 插入数据,mongo 会主动带上一个_id 的标识符
db.sheetName.find() // 查问
db.sheetName.find(id : {$gt : 2}).forEach(printjson) //$gt 大于,printjson 打印
db.sheetName.sort({keyName : -1}) // 依照 keyName 降序排列
db.sheetName.find().limit(2) // 限度查问条数为 2 条
db.sheetName.count() // 计数
db.sheetName.remove({}) // 删除全副
db.sheetName.update({id : 1},{$set:{keyName : newVal}}) // 更新 id 为 1 的数据,$set 设置新的 value

// 创立 admin 用户
db.createUser(
    user : "admin",pwd : "admin",
    roles : [{role : "userAdminAnyDataBase",db : "admin"}
    ]
)
db.createUser(
    user : "username",pwd : "123456",
    roles : [{role : "userAdmin",db : "employee"}
    ]
)
//role 能够为 userAdminAnyDataBasr userAdmin read readWrite

(2)bin 文件下.exe 的区别:

mongodump.exe 备份程序
mongostat.exe 监控服务器产生的增删改查
mongotop.exe 跟踪报告读写流动
ServerStatus 返回数据库状态,包含磁盘应用,内存

退出移动版