终于有时间来学习 node 啦!!!
一: Node 介绍
Node.js运行单线程,非阻塞,异步编程,这非常节省内存。
- Node.js可以生成动态页面内容
- Node.js可以在服务器上创建,打开,读取,写入,删除和关闭文件
- Node.js可以收集表单数据
- Node.js可以添加,删除,修改数据库中的数据
二: Node 的语法
2.1 Node HTTP 服务
HTTP模块可以创建一个HTTP服务器,该服务器侦听服务器端口并将响应返回给客户端。
使用 url 模块来对url 进行解析 获得 url 的query 参数
1 | let http = require('http'); |
2.2 Node 模块化
编写一个 返回 当前时间的 模块 并命名为 getDate.js
1 | exports.getDate = ()=>{ |
之后创建 index.js 在里面写入以下内容 注意要与 getDate.js 在同意路径下。
1 |
|
2.3 Node 文件操作
使用 fs 模块 来 对文件进行 增删改查
1 | let http = require("http") |
2.4 Node 事件监听
Node.js具有一个内置的模块,称为“event”,您可以在其中创建,触发和侦听自己的事件。使用 eventEmitter 来 监听 事件的触发。
1 | var events = require('events'); |
要发布事件,我们使用emit()函数,要监听事件,我们使用on()函数。
同时在这一个样例中, 我们先 监听 scream 事件, 之后我们再发布, 同时发布事件的这一个过程是同步操作的。
还要再发布之前必须先去 监听。
三: Node 与 Mysql 交互
3.1 在本机中安装 mysql
https://www.mysql.com/downloads/
3.2 安装 mysql 驱动
1 | npm i mysql |
3.3 配置myql 参数
1 | let con = mysql.createConnection({ |
创建 test_node 数据库 和 user 数据表
3.4 mysql 模块包和 mysql8.0 验证方式不兼容
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
解决方法:
导致这个错误的原因是,目前,最新的mysql模块并未完全支持MySQL 8的“caching_sha2_password”加密方式,而“caching_sha2_password”在MySQL 8中是默认的加密方式。因此,下面的方式命令是默认已经使用了“caching_sha2_password”加密方式,该账号、密码无法在mysql模块中使用。
1 | mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; |
解决方法
解决方法是从新修改用户root的密码,并指定mysql模块能够支持的加密方式:
1 | mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; |
上述语句,显示指定了使用“mysql_native_password”的加密方式。这种方式是在mysql模块能够支持。
3.5 mysql 交互 全部代码
1 | let http = require("http") |
四: Node 与 Mongodb 进行交互
4.1 安装 mongodb
安装 Windows 版本的 https://www.mongodb.com/try/download/community?tck=docs_server
4.2 安装mongodb 模块
Download and install mongodb package:
1 | npm install mongodb |
4.3 创建 数据库和数据表
1 | var MongoClient = require('mongodb').MongoClient; |
4.4 插入一条记录
1 | var MongoClient = require('mongodb').MongoClient; |
4.5 插入多条记录
1 | var MongoClient = require('mongodb').MongoClient; |
4.6 查找一个数据
1 | var MongoClient = require('mongodb').MongoClient; |
4.7 查找多个数据
1 | var MongoClient = require('mongodb').MongoClient; |
4.8 更新一条数据
1 | var MongoClient = require('mongodb').MongoClient; |
更新多条数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myquery = { address: /^S/ };
var newvalues = {$set: {name: "Minnie"} };
dbo.collection("customers").updateMany(myquery, newvalues, function(err, res) {
if (err) throw err;
console.log(res.result.nModified + " document(s) updated");
db.close();
});
});