Node.js之前已经安装过了,没有安装的需要安装一下;
一、Mysql安装
见mysql安装教程【安装版】_超级小的大西瓜的博客-CSDN博客_mysql安装教程
二、navicat(数据库管理工具)安装、
下载地址:Products | Navicat
选择
黄色的或者绿色的(试用版本)
三、node.js简单介绍(支持后端开发)
1.node.js是开源的、跨平台的js的运行环境。
2. node.js并不是新的语言,类似于浏览器,是提供js代码执行的环境,因此,在开发node.js项目的时候,依旧使用js这门编程语言(和浏览器中编写的一样);也就是说node.js是js的宿主环境,学习的重点关注环境提供给js在浏览器中的不同的能力
3.浏览器提供的对象是宿主对象(全局对象)(例如window对象),js语言中提供的原生对象就是内置对象,当js在内置对象找不到的时候会去全局去找。当我们宿主对象变换为node.js以后,宿主对象是global,不再是windows了;
4.global不同于window:
(1)没有Dom和Bom
(2)文件读写权限
(3)进程管理
(4)传统数据库的操作:Mysql、SQLServer、Oracle、MondoDb等数据库(不包括浏览器中集成的数据库),如果想要操作数据库需要安装第三方插件
四、Node.js模块化开发
1.模块化开发:当代项目都是以模块为基本单位,将各个模块组织在一起就是一个完整的项目,这种开发思想就是人们称之为的模块化开发;模块是一个具有功能的基本代码单元,就是代表能完成一个具体功能的代码。比如密码登录等;
2.具体怎么创建一个模块以及怎么使用是有规范的;
3.规范:在node.js中模块化规范遵循的是CommonJS规范
(1)一个文件就是一个规范,比如"password.js"(一个js文件),文件的名字就是的模块名字
(2)模块拥有独立的作用域,不同模块的数据不可以直接相互访问,为了防止不同模块之间标识符名称发生冲突(即重名覆盖问题);如果某个模块的数据或方法想给其他模块使用,此时可以通过以下方法对外暴露接口(数据或方法):
<1>每一个模块都内置一个module对象,module.exports该对象是用来暴露接口的,其他模块就可以获取到(怎么获取见下边)
<2>还有一种快捷方式,在模块中内置一个exports对象,他是module.exports对象的一个引用,有些时候使用它暴露接口更加方便。(但是并不常用)
(3)加载模块:如果想使用某个模块的数据,必须通过require()函数,将其他模块引入进来:
<1>require参数(类型为string)为要引入的模块的路径或是模块的名称;,当引入的模块为内置模块直接写名称,不需要写路径;当引入的模块是文件模块时,需要指定文件的路径部分,不需要加后缀名;
<2>require的返回值就是引用的模块通过module.exports暴露的对象;可以进行解构赋值;
4.使用node.js素质环境进行执行的方法:在cmd中切换到想要执行文件的文件夹目录下,然后输入node 文件名称.js进行运行
五、通过模块化开发制作一个密码强度的测验小程序
在一个文件夹下定义了两个js文件;在一个文件中定义模块代码如下,该模块实现通过正则表达式实现密码强度的反馈
const bigWord=/[A-Z]+/;
const numberWord=/\d+/;
const differentWord=/[!@$%^&*]+/;
const wordWord=/[a-zA-Z]+/;
function checkPassword(pass){
let count=1;
if(pass.length<6){
return 0;
}
if( bigWord.test(pass))
{
count++;
}
if( differentWord.test(pass))
{
count++;
}
if( wordWord.test(pass)&& numberWord.test(pass))
{
count++;
}
return count;
}
module.exports={
checkPassword,
};
第二个文件通过引入上边的文件,并调用方法(解构赋值)
var {checkPassword}=require('./password');
var pass='Gaa';
console.log(checkPassword(pass));
执行代码:
六、加密内置模块(crypto)
1.密码加密一般选择MD5 不可逆加密
2. var newpassword=crypto.create.hash('md5').updata('123123').digest('hex');(32位)
解释:通过md5方式进行加密(对密码'123123'),返回的是2进制的数据再转换为16进制