当前位置: 首页 > 后端技术 > Node.js

猫鼬+快递

时间:2023-04-03 12:44:53 Node.js

菜鸟教程参考网站:https://www.runoob.com/mongod...express:https://www.expressjs.com.cn/mongoose:http://www.mongoosejs.net/源码github:https://github.com/nowRookie/...1.下载mongodb1,mongodb下载地址:https://www.mongodb.com/try/d...2.Mongodb下载需要访问外网。推荐使用Ghelper的google插件3.安装过程中,不要勾选installmongodbcompass,graphicstools,否则会很慢。4.配套的绘图工具,我选择robo3T,下载地址https://robomongo.org/5。设置环境变量,E:\mongodb\bin2.快速启动mongodb(1)通过.bat批处理文件创建一个.bat后缀的文件,内容如下E:cdE:\mongodb\binstartmongod--dbpath=E:\mongodb\dataD:cdD:\360download\Robo3T1.3.1startrobo3t.exe(2)网上说可以安装启动,netstartMongoDB,但是没成功3.基础项目express+mongoose1,新建文件夹express2,npminit,一直回车,初始化package.json3,修改package.json,安装对应的package4,这里一定要安装最新的babel相关包@babel,否则项目中es6的一些新特性还不支持,如{...}"name":"app","version":"1.0.0","description":"","main":"index.js","scripts":{"start":"nodemon--execbabel-node./app.js"//项目热更新},"author":"","license":"ISC","依赖项":{"@babel/cli":"^7.12.1","@babel/core":"^7.12.3","@babel/node":"^7.12.6","@babel/preset-env":"^7.12.1","asyncro":"^3.0.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":[["@babel/preset-env"]]}5.使用以下内容创建一个新的app.js:importexpressfrom"express"constapp=express()importpathfrom"path"import{port}from"./config"//cors跨域处理importcorsfrom"cors"app.use(cors())//body-parser中间件importbodyParserfrom'body-parser'app.use(bodyParser.json())//中间件打印日志信息importlogfrom"./middleware/log"app.use(log())//静态资源app.set('viewengine','hbs')app.set("views",process.cwd()+"/hbs")app.use(express.static("static"))app.use(express.static("uploads"))app.use("/virtual",express.static(path.join(__dirname,"static")))//routeimportrouterfrom"./router/index"router(app)//ueditor百度文本编辑框importueditorfrom"./plugins/ueditor.js"ueditor(app)//mongooseconnectionimportmongoosefrom'mongoose';mongoose.set('useFindAndModify',false)mongoose.connect('mongodb://localhost/websiteDB',{useNewUrlParser:true,useUnifiedTopology:true});//数据库constdb=mongoose.connection;db.on('error',()=>console.error('connectionerror:'));db.once("open",()=>{app.listen(port,()=>console.log(`Exampleapp监听端口${port}!`))})6、mongoose操作数据库mongoose主要有两个东西:schema和model。我们可以创建一个新文件userModel.jsconstmongoose=require("mongoose")letSchema=mongoose.Schema({username:{type:String,required:true,},password:{type:String,required:true,minLength:6,maxLength:20,验证:{验证器:(值)=>{返回/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/.test(value)},message:"tagsarerequired"}}},{collection:"users",minimize:false,//将保存空对象timestamps:{createdAt:'createTime',updatedAt:"updateTime"}})letModel=mongoose.model("users",Schema)exportdefaultModel此时就可以使用Model来操作数据库了。如果配合express,新建userRouter.jsimportexpressfrom"express"consteRouter=express.Router()importuserModelfrom"../model/userModel"eRouter.route("/api/users").get((req,res,)=>{userModel.find(req.query,(dbErr,dbRes)=>{if(dbErr)returnres.status(500).send({code:201,message:"数据库查询错误"})res.send(dbRes)})})exportdefaulteRouter最后介绍app.use("/",app.js中的userRouter)Others(1)mongo.exe基本命令//dbName:数据库名usedbName//createdatabase//sheetName:表名db.sheetName.insert({})//插入数据,mongo会自动带一个_id标识db.sheetName.find()//查询db.sheetName.find(id:{$GT:2}).forEach(printjson)//$gt大于,printjsonprintdb.sheetName.sort({keyName:-1})//根据keyName降序排列db.sheetName.find().limit(2)//限制数量查询到2分贝。sheetName.count()//计数db.sheetName.remove({})//删除所有db.sheetName.update({id:1},{$set:{keyName:newVal}})//更新id为1$set设置新值//创建管理员用户db.createUser(user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDataBase",db:"admin"}])db.createUser(user:"username",pwd:"123456",roles:[{role:"userAdmin",db:"employee"}])//role可以是userAdminAnyDataBasruserAdmin读取readWrite(2).exe下的bin文件区别:mongodump.exe是一个备份程序mongostat.exe监控服务器增删改查mongotop.exe跟踪并报告读写活动ServerStatus返回数据库状态,包括磁盘使用,内存