五、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
记录一次Hexo持续集成部署尝试
记录一次Hexo持续集成部署尝试
规范JavaScript命名
驼峰命名法 驼峰命名法按照第一个字母是否大写分为: Pascal Case 大驼峰式命名法:首字母大写 StudentInfo、UserInfo、ProductInfo Camel Case 小驼峰式命名法:首字母小写 studentInfo、userInfo、productInfo 变量 命名方法:小驼峰式命名法 命名规范:前缀应当是名词。(函数的名字前缀为动词,以此区分变量和函数) 命名建议:尽量在变量名字中体现所属类型,如:length、count等表示数字类型;而包含name、title表示为字符串类型。 示例 // 好的命名方式 var maxCount = 10; var tableTitle = 'LoginTable'; // 不好的命名方式 var setCount = 10; var getTitle = 'LoginTable'; 函数 命名方法:小驼峰式命名法 命名规范:前缀应当为动词。 命名建议:可使用常见动词约定 动词 含义 返回值 can 判断是否可执行某个动作(权限) 函数返回一个布尔值 ...
规范JavaScript注释
行内注释 显示一个解释的评论 // 用来显示一个解释的评论 显示表达式的结果 // -> 用来显示表达式的结果 显示 console 的输出结果 // >用来显示 console 的输出结果 示例 function test() { // 测试函数 console.log('Hello World!'); // >Hello World! return 3 + 2; // ->5 } //(双斜线)与代码之间保留一个空格,并且//(双斜线)与注释文字之间保留一个空格。 单行注释 示例 // 调用了一个函数;1)单独在一行 setTitle(); 单独一行://(双斜线)与注释文字之间保留一个空格。 普通多行注释 示例 /* * 代码执行到这里后会调用setTitle()函数 * setTitle():设置title的值 */ setTitle(); 若开始/*和结束*/都在一行,推荐采用单行注释。若至少三行注释时,第一行为/*,最后行为*/,其他行以*开始,并且注释文字与*保留一个空格。 函数多行注释 函数(方法) ...
jQuery原理(事件操作相关方法)
on方法 // 事件操作相关方法 kjQuery.prototype.extend({ on: function (name, callBack) { this.each(function (key, ele) { // 2. 判断当前元素中是否有保存所有事件的对象 if (!ele.eventsCache) { ele.eventsCache = {}; } // 3. 判断对象中有没有对应类型的数组 if (!ele.eventsCache[name]) { ele.eventsCache[name] = []; // 4. 将回调函数添加到数组中 ele.eventsCache[name].push(callBack); ...













