十、promise的使用
Promise用来做什么 用来解决回调地狱。回调地狱也就是回调函数中嵌套了回调函数,代码阅读性低。 例如如下代码: const fs = require("fs"); // 读A文件 fs.readFile(`${__dirname}/etc/a.txt`, "utf-8", (err, data) => { if (err) { console.log(err); } else { console.log(data); // 读B文件 fs.readFile(`${__dirname}/etc/b.txt`, "utf-8", (err, data) => { if (err) { console.log(err); } else { console.log(data); // 读C文件 fs.readFile(`${__di ...
九、英雄管理(cqmanager)系统
查看源码 准备 mysql-ithm的使用 安装npm i mysql-ithm 使用 参照文档即可。 简单示例 // 导入模块 const hm = require("mysql-ithm"); //2.连接数据库 //如果数据库存在则连接,不存在则会自动创建数据库 hm.connect({ host: "localhost", //数据库地址 port: "3306", user: "root", //用户名,没有可不填 password: "root", //密码,没有可不填 database: "cqmanager502", //数据库名称 }); //3.创建Model(表格模型:负责增删改查) //如果table表格存在则连接,不存在则自动创建 let herotModel = hm.model("hero", { heroName: String, heroSkill: String, }); //4.调用API:添加数据 // he ...
八、NPM包管理
如何写NodeJs模块 遵守CommonJS规范。 导入模块 暴露出去(导出) 一个简单的示例: // 定义一个对象 let db = { baseUrl: "http://127.0.0.1:3000/", insert: function () { console.log("插入方法"); }, delete: function () { console.log("删除方法"); }, }; // 将其暴露出去 module.exports = db; 在我们的模块中定义一个对象,并将其暴露出去。接下来在我们自己的js文件中去使用这个对象。 const myMoudle = require("./01-自己写的模块.js"); myMoudle.insert(); 写一个自己的模块 NPM发布包 进入待发布的目录,然后初始化目录npm init。并依次填入包名、版本、描述等信息。如果没有可以跳过(回车)。 注册NPM账号 ...
七、NodeJs数据库管理
建表 MySQL程序可以使用PHP study集成工具。链接、操作数据库可以使用phpstudy自带的工具也可以使用navicat工具。 SQL语句-增删改查 插入数据 insert into 表名(字段名1,字段名2) values(值1,值2); 例如: insert into user(name,description) values('陈浩南','铜锣湾扛把子'); 删除数据 delete from 表名 where 条件; 条件一定要写,如果不写则会删除该表中所有的数据删除。 例如: delete from user where id>3; 修改数据 update 表名 set 字段名1=新值1,字段名2=新值2 where 条件; 条件一定要写,如果不写则会修改数据表中的全部数据 例如: update user set name='子风兄',description='比波波还骚' where id=3; 查询数据 select * from 表名 [where 条件]; NodeJs操作数据库 NodeJs链接数据库需要使用模块mysql。基本 ...
六、中间件与跨域
什么是中间件 在路由相应之前就会执行中间件的内容,例如在中间件中进行赋值,这种就可以在路由执行时使用这个值。 所以中间件就是服务器开启之后和路由响应之前执行的一个函数。这个函数可以操作req与res。使用next()向下传递到下一个中间件,最后传到路由。 例如开启三个中间件的写法: app.use((req, res, next) => { console.log("中间件1"); req.requestTime = Date.now(); next(); }); app.use((req, res, next) => { console.log("中间件2"); next(); }); app.get("/", (req, res) => { console.log(Date.now() - req.requestTime); res.send("Hello World!"); }); 什么是跨域 浏览器使用ajax时,如果请求的接口地址和当前打开的页面地址不同源称之为跨域。 协议和地址 ...
五、express实战-英雄管理系统
查看源码 后端路由 简单来说,注册路由就是写接口 登录接口 登录接口实现很简单,只需要接收post传来的参数,然后进行验证即可。 const express = require("express"); const bodyParser = require("body-parser"); app.use(bodyParser.urlencoded({ extended: false })); // 登录接口 app.post("/login", (req, res) => { // 接收用户传递过来的用户名和密码 let { username, password } = req.body; if (username == "admin" && password == "123") { res.send({ code: 200, msg: "登陆成功", }); } else ...
四、node服务器搭建
什么是端口 一台电脑可以部署多个服务器,根据端口不同找到不同的服务器。 默认的http端口为80端口。 web服务器读取网页并返回 使用http模块开启一个服务器 在服务器内部读取文件,将读取到的字符串内容作为服务器的响应返回 const http = require("http"); const fs = require("fs"); const path = require("path"); const server = http.createServer((req, res) => { // 拼接路径 const filePath = path.join(__dirname, "index.html"); fs.readFile(filePath, "utf-8", (err, data) => { if (err == null) { // 返回页面 res.end(data); } else { res.end(err); } ...
三、nodejs模块使用和其他
内置模块的基本使用(删除文件) const fs = require("fs"); /** * 删除文件 * @param {string} "./temp/test.txt" 被删除文件的路径 * @param {function} (err) 回调函数,将错误信息传入其中 */ fs.unlink("./temp/test.txt", (err) => { if (err) throw err; console.log("已成功删除 test"); }); fs模块读文件 const fs = require("fs"); /** * 读取文件信息 * @date 2020-07-01 * @param {sting} "./temp/t.txt" 文件路径 * @param {sting} "utf-8" 指定字符编码 * @param {function} (err,data) 回调函数传入错误信息与读到的数据 */ fs ...
二、ES6新语法
let关键字 特点 var关键字 let关键字 变量提升 √ × 作用域 没有块级作用域,是函数作用域 有块级作用域 重复声明 √ × 重新赋值 √ √ 变量提升 console.log(age); let age = 38; 作用域 for (var i = 0; i < 10; i++) {} console.log(i); for (let n = 0; i < 10; i++) {} console.log(n); 图中可对比看出,如果用var声明,在循环外部还是可以使用i变量;但用let声明变量,循环外部不可以使用n变量 不可重复声明 let num2 = 10; let num2 = 20; console.log("num2: ", num2); 重新赋值 let num2 = 10; num2 = 20; console.log("num2: ", num2); const关键字 使用场景 一些不会变化的值,比如圆周率PI 大事件项目中,保存基地址 ...
一、Node.js入门
什么是NodeJs NodeJs是一个基于谷歌V8引擎的运行环境。(服务器上的v8引擎就是node.js) 其作用是让js拥有开发服务端的功能 环境安装 官方地址:https://nodejs.org/zh-cn/ 安装完成后,添加环境变量。命令行终端输入node -v即可输出版本号。 同样的,安装完NodeJs之后会自动安装npm(node package manager)。输入npm -v也会出现版本号。 npm可以到NPM去寻找包,类似GitHub。 运行NodeJs VSCode中使用RunCoder插件 终端 注意路径问题,执行命令为node 文件名 VSCode中的终端同理。 双击node.exe,在其内编写代码 服务器端与浏览器端 服务端的JavaScript只有ECMAScript,也就意味着在NodeJs












