node及其相关知识的学习小小结

本文深入探讨Node.js作为后端语言的应用,介绍其模块系统,包括核心、第三方及自定义模块。重点讲解Express框架简化服务器搭建,以及MongoDB数据库操作,包括创建、增删改查、集合与文档管理。同时,分享如何结合Node.js与MongoDB进行后台管理系统搭建的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

node学习笔记

node是一门后端语言,由一名天才少年意外发明的,可他的初衷是搭建一个服务器。
node采用js语法,需引入相应的模块才能实现对应的功能。其中主要分为核心模块、第三方模块和自定义模块。其中核心模块中包含url、http和querystring等,espress框架属于第三方模块,mongoose则属于自定义模块。
express框架可以直接创建服务器,脚手架可以直接生成项目,这极大方便了我们的操作。
数据库可以分为两类,一种是关系型数据库,比如说mysql,另一种是非关系型数据库,比如说MongoDB,MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB中有命令行操作,一些数据库的命令、集合的操作和文档操作。而node结合MongoDB便可以实现增删改查操作了。

MongoDB 创建数据库
	use DATABASE_NAME
		如果数据库不存在,则创建数据库,否则切换到指定数据库。
	    use runoob
		switched to db runoob
		db
		runoob
		
 查看所有数据库,可以使用 show dbs 命令:

 但要显示它,需要向 runoob 数据库插入数据。
 db.runoob.insert({"name":"123456"})
	 WriteResult({ "nInserted" : 1 })

 show dbs
 runoob  0.000GB
	 MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
	 注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

集合操作:
	db.createCollection(name, options) 
	db.createCollection("collName", {size: 20, capped: true, max: 100});
		name: 要创建的集合名称
		options: 可选参数, 指定有关内存大小及索引的选项

文档(数据)操作
	增:
	 db.collection.insertOne():向指定集合中插入一条文档数据
	 db.collection.insertMany():向指定集合中插入多条文档数据	
	 
    删
	db.collection.deleteOne():向指定集合中插入一条文档数据
	db.collection.deleteMany():向指定集合中插入多条文档数据	
	
	改
	db.col.updateOne({key: value}, {$set: {key: value}}):向指定集合中插入一条文档数据
    db.col.updateMany({key: value}, {$set: {key: value}}):向指定集合中插入多条文档数据
	db.col.updateOne({key: value}, { $inc: {key: num}}) 修改某一条数据的某一个字段key的自增num
	
	查
	db.users.find({},{}).pretty()   :查询所有的数据,显示所有的字段
	
	条件查询:db.users.find({},{_id: 0}).pretty() 不显示_id字段 
	                  db.users.find({},{_id: 0, username: 1}).pretty() // 不显示_id字段,只显示username字段'
	                  
	或查询:db.users.find(  {  
											$or:  [   { password : '123' } , { password : '456' }   ] 
											}  ,  
											 {  _id: 0 }  
										) . pretty ()
										
	区间查询:db.users.find({age: {$gt: 24} }, {_id:0}).pretty()

	模糊查询:db.users.find({ $or: [{username: /纯/}, {username: /强/}]}, {_id:0}).pretty()
    
    排序:db.users.find({}, {_id: 0}).sort({age: 1}).pretty()        
    		1表示按照key值升序,为-1表示降序

	查询数据并且计数:db.users.find({age: { $gte: 18, $lte: 20 } }, { _id:0 }).count() 

node与mongoose结合步骤:
1、打开终端
2、打开数据库的连接池
3、在node中安装mongoose
4、引入mongoose模块
const mongoose = require(‘mongoose’);
5、通过mongodb协议地址登录服务器并查看状态
const DB_URL = ‘mongodb://127.0.0.1:27017/testest’;
mongoose.connect(DB_URL, { useNewUrlParser: true });
mongoose.connection.on(‘connected’, () => { console.log(‘数据库连接成功’) })
mongoose.connection.on(‘disconnected’, () => { console.log(‘数据库连接失败’) })
6、 自定义模块(db.js)并暴露
mongoose.connection.on(‘error’, () => { console.log(‘数据库连接异常’) }) module.exports = mongoose
再创建一个user.js通过引入db.js来实现创建集合,设计数据表。
那么其他的文档操作如增删改查就可以通过引入user.js来进行了。
为了以后的使用,这里的mongodb其实是可以进行封装的;
module.exports = {
insert (insertData) { insertData.save(err => { if (err) throw err; console.log(‘insert success’); }) },
delete: (col, type, deleteData) => { col[type](deleteData, err => { if (err) throw err; console.log(‘delete success’); }) },
update:
function (col, type, whereObj, updateObj) {
col[type] (
whereObj, updateObj,
err => { if (err) throw err; console.log(‘update success’); }
)
},
find (col, whereObj, showObj) { col.find(whereObj, showObj).exec((err, data) => { if (err) throw err; console.log(data); }) },
sort (col, whereObj, showObj, sortObj) {
col.find(whereObj, showObj).sort(sortObj).exec(
(err, data) => { if (err) throw err; console.log(data); }
)
}
}

			node是如何搭建一个后台管理系统的呢?(大体步骤与思路)
					其过程可以用admin-lte模板与express的结合来实现。
							1、复制admin-lte中的所需的页面和静态文件(css),其中路径加/表示绝对路径。
							2、分割页面使用ejs的include语法导入相应模块。
							3、修改menu菜单、确定条目。
							4、创建相关路由文件(index.js、user.js、product.js) 
							5、修改app.js引入路由文件、注册相关路由并重启路由。
					完成以上步骤便可以在浏览器中输入/user/product查看效果了。
					当然后台管理系统的登录功能可以通过缓存cookie、session、token配合页面login.ejs、相关路由和状态来实现。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值