一、模块的加载机制


1、优先从缓存中加载

模块在第一次加载后会被缓存,这也意味着多次调用require()不会导致模块的代码被执行多次。

注意:

不论是内置模块、用户自定义模块、还是第三方模块,他们都优先从缓存中加载,从而提高模块的加载效率



2、内置模块的加载机制

内置模块是由Node.js官方提供的模块,内置模块的加载优先级最高

如果有同名模块,优先加载官方提供的模块。


3、自定义模块的加载机制

使用require()加载自定义模块时,必须制定以./或../开头的路径标识符。在加载自定义模块时,如果没有制定./或../这样的

路径标识符,则node会把它当成内置模块第三方模块进行加载。

同时,在使用require()导入自定义模块时,如果省略了文件的扩展名,则Node.js会按顺序分别尝试加载以下的文件:

按照确切的文件名进行加载

补全.js扩展名进行加载

补全.json扩展名进行加载

补全.node扩展名进行加载

加载失败,终端报错


二、Express

1、什么是Express

Express是基于node.js平台快速、开放、极简的web开发框架

Express的作用和Node.js内置的http模块类似,是专门用来创建Web服务器的。

Express的本质:就是一个npm上的第三方包,提供了快速创建Web服务器的便捷方法。


2、Express能做什么

使用Express,我们可以方便、快速的创建Web网站的服务器或API接口的服务器。


安装:

npm i express


监听GET请求:

通过get()方法,可以监听客户端的GET请求


监听POST请求:

通过post()方法,可以监听客户端的POST请求


将内容响应给客户端:

通过res.send()方法,可以把处理好的内容,发送给客户端


获取URL中携带的查询参数:

通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数


获取URL中的动态参数:

通过req.params对象,可以访问到URL中的动态参数


托管静态资源:

exporess提供了一个非常好用的函数,交express.static(),通过它,我们可以非常方便的创建静态资源服务器。

例如:

app.use('/public',express.static('public'))