文章目录
一、前言知识:什么是nodejs
注意事项:以下本片段来自nodejs官网所截取有需要查看详情请前往https://nodejs.org/en/官网。

翻译:Node.js®是一个免费、开源、跨平台的JavaScript运行时环境,允许开发人员创建服务器、web应用程序、命令行工具和脚本。
通俗来讲:Node.js就是一款应用程序,是一款软件,它可以运行JavaScript
二、Node.js中所使用的JavaScript与浏览器中的JavaScript之间的区别
1. 浏览器中的JavaScript可使用的语法

2. Node.js中可使用的JavaScript语法

总结:
1、Node.js 中不能使用BOM和DOM的 API,可以使用console和定时器的 API。
2、Node.js 中的顶级对象为global,也可以用globalThis访问顶级对象。
三、什么是Buffer它在Node.js起到什么作用及使用方法
1. 什么是Buffer它在Node.js起到什么作用
在 Node.js 里Buffer是一个全局对象,用于处理二进制数据。在 JavaScript 原生环境中并没有直接处理二进制数据的机制,而 Buffer 就填补了这个空白。它本质上是在内存中开辟的一段区域,类似于整数数组,但能直接与内存中的二进制数据进行交互。Buffer 对象的每个元素代表一个字节,其取值范围是 0 到 255。

四、Node.js操作数据库语法示例
技术概要:以下将介绍nodejs中如何操作数据库增删改查使用方法。
1. 使用insertOne函数向数据库中添加一条数据
db.collection('user').insertOne({
name: 'John Doe',
age: 30
});
2. 使用deleteOne函数向数据库中John Doe此数据
db.collection('user').deleteOne({name: 'John Doe' });
3. 使用updateOne函数修改数据库中John Doe的年龄
db.collection('user').insertOne(
{name: 'John Doe'},
//原数据键名age: 值为30
{$set: {age: 40}}
);
4. 使用find函数查询数据库中user表中的全部数据
db.collection('user').find();
五、Node.js对数据库增删改查详细代码讲解
注意:这里的讲解以Vue框架作为示例,如有需要React或Angelar框架的小伙伴敬请关注更新
1. 前端向后端添加数据,后端代码实现数据存储
(1)前端携带参数向后端发起请求
async function add() {
await axios({
url: 'https://q6zv39.laf.run/add-todo',
method: 'POST',
data: {
value: value.value,
isCompleted: false
}
})
}
(2)后端node实现数据存储
import cloud from '@lafjs/cloud'
export default async function (ctx: FunctionContext) {
const body = ctx.body;
const db = cloud.mongo.db;
//验证数据结构是否合法
if(typeof body !== 'object' || body === null) {
return {
success: false,
message: "Invalid data format: body should be an object."
}
}
if(typeof body.value !== 'string' || body === null) {
return {
success: false,
message: "Invalid data format: 'value' should be an string."
}
}
if(typeof body.isCompleted !== 'boolean') {
return {
success: false,
message: "Invalid data format: 'isCompleted' should be an boolean."
}
}
//连接到list集合
const collection = db.collection('list');
//查询集合中的所有文档
const result = await collection.insertOne(body);
//返回插入操作的结果
return {
success: true,
insertedId: result
};
}
2. 前端向后端请求删除数据,后端代码实现数据删除
(1)前端通过id向后端发起请求
async function del(id) {
await axios({
url: 'https://q6zv39.laf.run/del_todo',
method: 'POST',
data: {
id: id
}
})
}
(2)后端通过前端传递的参数id匹配数据库并删除此数据
import cloud from '@lafjs/cloud'
import { ObjectId } from 'mongodb'; //引入 ObjectId 以正确处理数据库 ID
export default async function (ctx: FunctionContext) {
const db = cloud.mongo.db;
const id = ctx.body.id;
if(!id) {
return {
success: false,
message: "Invalid request: 'id' is required."
}
}
//获取 list 集合
const collection = db.collection('list');
//删除对应 ID 的文档
const deleteResult = await collection.deleteOne({_id: new ObjectId(id)});
if(deleteResult.deletedCount === 1) {
return {
success: true,
message: "Document deleted successfully."
}
} else {
return {
success: false,
message: "Document not found or already deleted."
}
}
}
3. 前端向后端请求修改数据,后端代码实现数据修改保存
(1)前端通过id指向需要修改的数据对象向后端发起请求
async function update(id) {
await axios({
url: 'https://q6zv39.laf.run/update_todo',
method: 'POST',
data: {
id
}
})
}
(2)后端通过前端传递的参数id匹配数据库并修改此数据
import cloud from '@lafjs/cloud'
import { ObjectId } from 'mongodb'; //引入 ObjectId 以处理 MongoDB 的 ID 数据类型
export default async function (ctx: FunctionContext) {
const db = cloud.mongo.db;
const id = ctx.body.id;
if(!id) {
return {
success: false,
message: "Invalid request: 'id' is required."
}
}
//连接到 list 集合
const collection = db.collection('list');
//根据 ID 查找对应的文档
const document = await collection.findOne({_id: new ObjectId(id)});
if(!document) {
return {
success: false,
message: "Document not found."
}
}
//更新 isCompleted 字段为相反的值
const updatedResult = await collection.updateOne(
{_id: new ObjectId(id)},
{$set: {isCompleted: !document.isCompleted}}
);
if(updatedResult.modifiedCount === 1) {
return {
success: true,
message: "Document updated successfully."
}
} else {
return {
success: false,
message: "Failed to update document."
}
}
}
4. 前端向后端请求查询数据,后端代码实现数据查询
(1)前端向后端发起数据查询请求
async function getList() {
const res = await axios({
url: 'https://q6zv39.laf.run/get_list',
method: 'GET',
})
}
(2)后端查询数据库中全部数据并返回所有的查询结果
import cloud from '@lafjs/cloud'
export default async function (ctx: FunctionContext) {
const db = cloud.mongo.db;
//连接到list集合
const collection = db.collection('list');
//查询集合中的所有文档
const data = await collection.find({}).toArray();
//返回查询到的数据
return {
success: true,
list: data
}
}
294

被折叠的 条评论
为什么被折叠?



