首页 > 编程语言 >从零开始学node.js笔记 03

从零开始学node.js笔记 03

时间:2023-01-04 18:01:12浏览次数:37  
标签:node 03 内置 自定义 js 模块 服务器 加载

一、模块的加载机制


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'))



标签:node,03,内置,自定义,js,模块,服务器,加载
From: https://blog.51cto.com/u_15548632/5988768

相关文章

  • npm run serve 报错Error: error:0308010C:digital envelope routines::unsupported
    具体错误提示:Browserslist:caniuse-liteisoutdated.Pleaserun:npxbrowserslist@latest--update-dbWhyyoushoulddoitregularly:https://github.com/br......
  • 【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be nul
    问题描述使用VSCode创建PythonFunction,处理EventHub中的数据。当部署到AzureFunctionApp后,函数无法执行,查看Function日志出现 Valuecannotbenull.(Parameter......
  • 第03章 用户与权限管理
    第03章用户与权限管理1.用户管理1.1登录MySQL服务器启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下:mysql–hhostname|hostIP–Pport–uusername......
  • 在linux上安装node
    1、去https://nodejs.org/en/download/下载node-v13.14.0-linux-x64.tar.xz,放到/root/tools/node/目录下;2、解压:tar-xvfnode-v13.14.0-linux-x64.tar.xz3、cd到/......
  • 《安富莱嵌入式周报》第291期:分分钟设计数字芯片,单片机版JS,神经网络DSP,microPLC,FatFS
     视频版:​​​https://www.bilibili.com/video/BV1Dd4y1b74x​​1、英飞凌推出双核M7+M0芯片XMC7000,8MBFlash,1MBRAM,2.7-5.5宽电压,10个CANFD,20通道LIN-UART,96通道12bitA......
  • 深入浅出简单JS加密解密案例
    加密是指使用密钥将明文(未加密的信息)转换为密文(无法被读取的信息)的过程。解密则是指使用相同的密钥将密文转换回明文的过程。JavaScript提供了一种内置的加密方法,称为​​......
  • JSR303校验 在实体类上的应用
    首先在实体类上添加注解@Validated在需要校验的字段上添加需要的注解可能出现的错误导入对应依赖可以解决<dependency><groupId>org.hibernate</groupId><ar......
  • mock.js模拟数据
    1.npm install mockjs2.在src目录下创建个mock文件夹3.mock文件夹下准备json数据(json数据必须格式化,不能留有空格)json需要的图片资源放在public文件夹下,会随dist打包原......
  • js 日期格式化
    1.给Date对象添加format方法,date类型的对象即可使用格式化方法(注意需要引入main.js中)Date.prototype.format=function(fmt){leto={"M+":this.getMonth(......
  • Anya's Simultaneous Exhibition
    题意description交互题。一共\(n(n\leq250)\)个人,两两之间存在胜负关系(不具有传递性),现在举行锦标赛,每次从剩下的人里选两个人决斗,胜负关系中胜者留下,负者淘汰。$n-1$......