const arrOld = datastr.split(" ")
arrOld.forEach(item => {
})
相对路径会出现路径动态拼接的问题,在node执行的时候拼接路径
相对路径移植性差,需要路径动态拼接
__dirname 表示当前文件所处目录
node_modules 是从当前的node_modules开始找,一直找到上级目录,最后到根目录
fs.stat() 获取文件meta信息
data.isFile() 判断是否是一个文件
data.isDirectory() 判断是否是一个文件夹
Number() 强制类型转换
2. http模块
设置中文响应乱码 response.setHeader('content-type', 'text/html;charset=utf-8')
3. Node 模块化
将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称为模块化
模块内部数据是私有的,不过可以暴露内部数据以便其他模块使用
好处:
1. 减少命名冲突
2. 高复用性
3. 高维护性
require导入模块
注意事项:
1. 对于自己创建的模块,导入路径一般为相对路径,且不能省略./和../
2. js和json文件导入时可以不用写后缀 优先检测js文件
3. 如果导入其他类型的文件,会以js文件进行处理
4. 如果导入的路径是个文件夹,则会首先检测该文件夹下package.json文件中main属性对应的文件,如果存在则导入,如果文件不存在则报错。
如果main属性不存在,或者package.json不存在,则会尝试导入文件夹下index.js和index.json,如果还是没找到,就会报错
5. 导入node.js 内置模块时,直接require模块的名字即可,无需加./和../
CommonJS规范
module.exports、 exports 以及 require这些都是CommonJS模块规范中的内容,而Node.js是实现了CommonJS模块化规范
javaScript实现了ECMScript
三 包管理工具
yarn和npm包管理工具不同
1. 安装依赖项的算法不同
npm使用的是package-lock.json文件管理依赖项的版本和依赖关系,在安装依赖项时,npm使用深度优先算法来解析依赖项的依赖关系,会导致版本冲突和不稳定性
yarn使用yarn.lock文件管理依赖项的版本和依赖关系,在安装时使用广度优先算法来解析依赖项的依赖关系,确保安装的依赖项版本稳定且与其他依赖项兼容
2. yarn的安装速度比npm更快,因为yarn会并行下载多个依赖项,而npm是按照顺序依次下载每个依赖项
3. 缓存机制不同
npm将依赖项目缓存在本地.npm目录中,每次npm检查缓存中是否存在相同版本的依赖项,如果存在,使用缓存中的依赖项而不是重新下载
yarn也有类似的缓存机制,但是将缓存的依赖项放在本地的yarn-cache目录中。yarn还使用了更加智能的缓存算法,尽可能重复使用已经下载的依赖项,减少了下载的时间和带宽消耗
4. 锁定机制不同
npm会生成一个package-lock.json 文件来锁定依赖项的版本和依赖关系。但是这个文件可能会不稳定,导致不同的开发者安装相同的依赖项版本不一致问题。
yarn 使用 yarn.lock文件来锁定依赖项的版本和依赖关系,由yarn自动生成,确保不同开发者安装项目的依赖项版本一致
npm的package-lock.json文件只记录了每个依赖项的版本号和依赖关系,而没有记录依赖项所依赖的其他依赖项的版本号和依赖关系,可能导致不同开发者安装相同的依赖项版本不一致问题。
yarn install
yarn run
npm -y 快速初始化