NOTE JS

     基于chrome V8引擎的JavaScript运行环境。 

      js:运行在浏览器  开发前端程序

      node:运行在服务器 开发后端程序

      静态页面:数据都是写死的。HTML+CSS+JS

      动态页面:数据都是动态的。HTML+CSS+JS+后端接

  •    为什么要学习node?

      中小型项目快速开发

      全栈:前端,后端都可以做,全干

      招聘时有些公司要求

 node可以操作文件,可以创建服务器,可以连接数据库等等。

Node模块

  node的模块大致可分为三大类:

     1.内置模块(nodejs原生提供的)可以直接使用。

     2.自定义模块 (需要手动的导出)

     3.第三方模块(需要下载安装然后才可以使用)

 

  一    自定义模块:

    定义模块:

      通过module.exports = {} 导出模块

      通过exports.属性名 = value 导出模块

   引入模块:

      const 变量名 = require("模块路径")

let a = 10;
let b = function(){
  console.log("模块A中的b函数");
}
exports.a = a;
module.exports = {
  a
}//导出模块
console.log(exports == module.exports);//判断两种方式是不是一样

// exports可以多次导出,但是module.exports只能导出一次,多次导出最后一次生效。
// exports和module.exports本质是相等的。
// exports是一个引用,指向的是module.exports
// 如果在同一个文件中使用两种导出,给exports添加的属性和方法,也会添加在module.exports上,但是添加在module.exports上的属性和方法,不会添加在exports上。
let module = require("./a.js");//导出模块

console.log(module); //10

 

 

 

 

 

二  内置模块 :

  • fs内置模块: 专门用来操作文件的  

const fs = require("fs");//声明fs内置模板

  1.读取文件:

fs.readFire("读取文件路径","utf-8",function(err,data){
         console.log(data);
})

           1.引入fs内置模块

           2.调用readFile方法

           3.指定读取文件的路径(读取b.txt文档的内容)

           4.指定读取的编码

           5.回调函数 读取的时候执行的操作。

           6.err 是读取失败时的错误信息

           7.data 是读取的内容。

// 1.引入fs内置模块 这个模块是专门用来操作文件的
const fs = require("fs");
// readFile 方法 是读取文件中的内容
fs.readFile("./b.txt",'utf-8',function(err,data){
  console.log("错误信息为"+err);
  console.log("读取到的内容为"+data);
})

2.写入内容

// 引入fs内置模块
const fs = require("fs");
let data = "hello world";
// writeFile 方法是写入,覆盖式  第一个参数:写入文件的路径
// 第二个参数:写入的内容。
// 第三个参数:一个函数,写入完成后执行. err表示错误信息,如果成功执行,则err为null
fs.writeFile("./a.txt",data,function(err){
  if(err){
    console.log(err);
  }
})

3.追加内容 

//appendFile 追加
fs.appendFile("./a.txt",data,function(err){
  if(err){
     console.log(err);
   }
 })

4.创建文件

const fs = require("fs");

fs.mkdir("a",function(err){
  if (err) {
    //对错误进行处理
    console.log("创建文件夹失败,原因:"+err);
  }
  console.log("创建成功");
})

5.删除文件

const fs = require("fs");

fs.unlink("./a.txt",function(error){
  if (error) {
    console.log("删除失败,原因:"+error);
  }
  console.log("删除成功!");
})

6.文件重命名

const fs = require("fs");
fs.rename("c","d",function(err){
  if (err) {
    console.log("重命名失败,原因:"+err);
  }
  console.log("重命名成功");
})//a命名为c
  • 路径模块:包含了一系列处理和转换文件路径的工具集合。

为什么要使用路径模块?

当前文件在window下:E:\h5\代码\03_node_mysql_ajax\02

window 文件的分隔符是 \ / 在Linux下只有/

 路径模块中的方法

const path = require("path");
//获取路径模块

 1.   path.extname(文件路径)

   作用: 获取文件的后缀名

  

  2.__dirname 

    获取当前文件所在的绝对路径

  

const path =require("path");
const fs = require("fs");
fs.readFile(path.join(__dirname,"a.txt"),"utf-8",function(err,data){
  if (err) {
    console.log("读取失败:"+err);
  }else{
    console.log("读取的内容:"+data);
  }
})//获取文件的绝对路径并将其拼接,从而进一步操作文件

  在node中,操作文件时需要使用绝对路径,引入模块时使用相对路径

  node中,相对路径不是按照当前文件来执行的,而是按照命令行所在的目录下。

3.path.join()

     作用:拼接路径

   静态资源:HTML CSS 图片

const path = require("path");

let filePath = path.join("static","img","heixin001","kenghuo002");
// 输出结果:static\img\heixin001\kenghuo002
// 如果是Linux 输出结果:static/img/heixin001/kenghuo002
console.log(filePath);

三  第三方模块

什么是第三方模块?

     别人写好的,具有特定功能的模块,就是第三方模块,我们需要下载才可以使用。

  

   获取第三方模块

    1. npmjs.com

     存储和分发第三方模块的仓库

  

    使用npm命令行下载第三方模块

       npm是随node一起安装的包管理工具,只要安装了node,就可以使用npm。

  

    npm的作用:

       1.允许用户从npm服务器下载别人写好的第三方模块到本地使用。

       2.允许用户从npm服务器下载别人写好的命令行程序到本地使用。

       3.允许用户上传自己写好的第三方模块和命令行程序到npm服务器上。

  

    npm 下载模块

        npm install 模块名  可以简写为 npm i 模块名

        执行以上命令后,会在当前命令行所在的目录下多一个node_moduls文件夹,下载好的第三方模块就存放在这个文件夹下面。

 

    npm 卸载模块

        npm uninstall 模块名

  

  

    2.nodemon

       nodemon是一个命令行工具,用以辅助项目开发,每次修改文件都会自动重新执行该文件,不需要再手动执行。

  

    全局安装与本地安装

     本地安装:把模块和命令行按照到当前文件夹下,只能在当前目录下使用。

        第三方包/模块  是安装在本地的

  

     全局安装:安装完成后,在命令行中任意目录都可以使用。

         全局安装: 在安装模块时,在后面添加 -g

             npm i 模块名 -g

         命令行工具安装在全局,以便随时随地调用。

  

    解决方法:

          1.window+r 输入powershell

           2.执行:set-ExecutionPolicy RemoteSigned

  

   3.使用nrm 源管理器。

     node的服务器是在国外的,下载是非常慢的。

     如果想要下载的快,可以使用国内的镜像库。

   安装:

     npm i nrm -g

   查看可用的源

     nrm ls

   切换源

     nrm use 地址名称

  

  错误解决方法:

   1.根据错误提示,找到cli.js,一般是

       C:\Users\Administrator\AppData\Roaming\npm\node_modules\nrm\cli.js

   2.将第17行的数据修改为以下代码:

     const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');

   

  

   4.cnpm

       淘宝的镜像源下载命令行工具

   5.yarn  

       yarn也是一个包资源管理器,与npm的功能是一样的。 不过yarn的下载速度更快。

       目标:干掉npm。

  

  下载使用:

        用npm去下载

        npm i yarn -g

   

   初始化项目:创建package.json

     yarn init

     yarn init -y 快速生成

  

   安装单个依赖

     yarn add 模块名

  

   安装项目中所有的依赖

     yarn install

  

   卸载依赖

     yarn remove 模块名

 node_modules的问题

       如果我们在项目中下载了很多第三方模块,那么别人拷贝你的项目时就会特别的慢。

   解决方法:package.json

      每个项目的根目录下,一般都会有一个package.json文件,定义了这个项目需要哪些模块,以及该项目的配置信息(项目名,作者,版本,许可证等)

  

   创建package.json文件

       npm init    需要填写配置信息。如果不想填写,直接一路回车。

       npm init -y 快速生成

  

   package-lock.json 用于锁定版本,防止多人开发时,使用不同的第三方包的版本。

  {
      "name": "demo", //项目名称
      "version": "1.0.0", //项目版本
      "description": "", //简介
      "main": "index.js", //入口文件
      //脚本
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "", //作者
      "license": "ISC" //开源许可证
    }

   

   package.json重要字段

     dependencies    生产环境依赖模块

     devDependencies 开发环境依赖模块 

     scripts:脚本

  

   一些第三方类库只需要在开发时使用,不需要在生产环境上部署,则可以将它安装在开发环境依赖模块下。

   npm install 模块名 -D  开发环境

   npm install 模块名 -S  生成环境

script 脚本设置:

"scripts": {

    "key":"value"

}//key 启动的命令名   value  指定的命令

运行:

  npm run key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值