一、应用程序从架构分为:C/S、B/S
C/S: client:客户端
server:服务器
C/S的特点: 客户端需要安装
C/S的缺点:客户端需要安装
B/S: browser:浏览器 【重点】
server:服务器
B/S的特点:客户端无需安装,只要有浏览器和网络就可以随时随地来访问。
B/S的缺点:客户端没有数据处理能力,所有的数据(业务)都要提交给服务器来处理,当访问量较大时服务器的压力也会增大。
B/S程序的运行原理【重点】:
请求:request
响应:response
二、模块系统
2.1 模块化介绍
2.1.1 传统开发的问题
随着项目的扩大,然后代码就越来越庞大 ,如果没有很好的规划,后期维护非常复杂(甚至就维护不了)。
比如:a.js文件中的代码有:var usr='李四';function test(){} b.js中的代码有:var usr="张三"; function test(){} 如果在某个.html文件中同时使用a.js文件和b.js文件时则会出现问题,要解决类似于这样的问题可以使用闭包、面向对象编程等来解决,但是没有一个统一的标准。
2.1.1 概述
2.1.2 解决问题:(好处)
2.2. Commonjs简述
2.2.1 组成
(1)如何定义数据和功能函数(如何定义公共代码)
(2)外部如何使用定义的数据和功能函数
2.2.2 定义规范的好处
既然是规范,那么就应该是大家默认都应该遵守的,这样就降低了沟通的成本,极大方便了各个模块之间的相互调用,利于团队协作开发。
2.3 模块的种类
-
自定义模块:(开发者自己定义的模块,每一个js文件都可以称为一个模块)
开发者,可以使用commonjs规范自己写的js文件,都称为自定义模块
-
内置模块:(由Node.js官方提供,如:fs、path、querystring等)
-
第三方模块:(由第三方开源出来的模块,使用前需要npm工具从npm社区下载)
2.4 自定义模块
2.4.1 nodejs自定义模块的语法(commonjs):【重点】
1、单个暴露:
exports.属性名 = 值
exports.方法名=function(){}
或:
module.exports.属性名 = 值
module.exports.方法名 = function(){}
2、批量暴露:
module.exports= {属性名,方法名}
注意:单个暴露与批量暴露不能同时使用;
2.4.2 自定义模块的定义与使用步骤:
第一步:创建自定义模块文件并使用nodejs自定义模块的语法(commonjs)定义模块文件代码;
第二步:在另外一个文件中使用require()方法引入要使用的自定义模块文件,但要注意:在引入自定义模块文件时要以./或../开头;
代码示例:
自定义模块文件m1.js文件的代码如下:
exports.uname = '张三'; module.exports.age = 20; exports.jsq = function() { console.log('这是计算器方法 '); } module.exports.fn = function() { console.log('fn()方法在m1.js文件中'); }
自定义模块文件m