您当前的位置: 首页 > 

知其黑、受其白

暂无认证

  • 0浏览

    0关注

    1250博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Node 常用

知其黑、受其白 发布时间:2021-09-03 11:25:41 ,浏览量:0

阅读目录
  • NPM版本控制
    • NPM 使用介绍
    • 全局安装与本地安装
      • 本地安装
      • 全局安装
  • npm 的 --save 选项
  • node工具之nodemon
  • express 查看版本
  • 常用工具列表
  • node的版本管理工具 `nvm`
    • 查看当前所有的node版本
    • 显示所有可下载的版本
    • 安装指定的版本
    • 使用特定版本
  • `nrm` 资源管理工具,可以切换国内服务器下载
  • 常用命令
  • Node.js REPL(交互式解释器)
  • Axios 是一个基于 promise 的 HTTP 库
    • axios 响应结果
    • async/await 用法
  • package.json 中 ~ 和 ^ 的区别
  • npm i 和 npm install 的区别
  • react 的 package.json 文件的 scripts
  • npx

“有的时候我们想要对别人好,在这之前先想想别人需不需要。”

“生命中所有得到的礼物,早已在暗中标好了价格。”

NPM版本控制
aplha 版  - 内测版
beta 版   - 公测版
rc 版     - 预览版
stable 版 - 用户可用
NPM 使用介绍

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

允许用户从NPM服务器下载别人编写的第三方包到本地使用。

允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 “npm -v” 来测试是否成功安装。命令如下,出现版本提示表示安装成功:

npm install express

安装好之后,express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require('express') 的方式就好,无需指定第三方包路径。

var express = require('express');

全局安装与本地安装

npm 的包安装分为本地安装(local)、全局安装(global)两种, 从敲的命令行来看,差别只是有没有-g

npm install express          # 本地安装
npm install express -g       # 全局安装
本地安装

1、将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。

2、 可以通过 require() 来引入本地安装的包。

全局安装

1、 将安装包放在 /usr/local 下或者你 node 的安装目录。 2、 可以直接在命令行里使用。

npm 的 --save 选项

-savesave-dev可以省掉你手动修改package.json文件的步骤。

spm install module-name -save 自动把模块和版本号添加到dependencies部分

spm install module-name -save-dve 自动把模块和版本号添加到devdependencies部分

node工具之nodemon

nodemon是一种工具,可以自动检测到目录中的文件更改时通过重新启动应用程序来调试基于node.js的应用程序。

安装

npm install -g nodemon  # 全局安装
//或
npm install --save-dev nodemon # 安装到本地json

才有全局安装要么容易报错

express 查看版本

npm list express

常用工具列表
web服务: express, koa, hapi
模板引擎: handlebars, ejs, jade
前端打包: webpak, fis
任务管理: gulp
单元测试: karma, mocha, jasmine
包管理器: npm, cnpm, yarn
守护进程: pm2
node 版本管理工具:nvm
检测文件变化,自动重启node:nodemon
nrm 是资源管理工具,可以切换国内服务器下载

内置核心模块

http服务
fs文件操作
url路径
path路径处理
电脑操作系统
node的版本管理工具 nvm

m 概念 nvm全名node.js version management,是一个node的版本管理工具。

首先最重要的是:一定要卸载已安装的 NodeJS,否则会发生冲突。

nvm  list       					查看当前所有的node版本
nvm  list available    				显示所有可下载的版本
nvm  install 10.13.0      			安装指定的版本
nvm  use --delete-prefix 10.13.0    切换到指定node版本
nvm  use 11.13.0   					使用特定版本
nvm  uninstall 11.13.0   			卸载
查看当前所有的node版本
nvm list

    15.11.0
    14.16.0
  * 14.15.5 (Currently using 64-bit executable)
显示所有可下载的版本
nvm list available

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    17.0.1    |   16.13.0    |   0.12.18    |   0.11.16    |
|    17.0.0    |   14.18.1    |   0.12.17    |   0.11.15    |
|   16.12.0    |   14.18.0    |   0.12.16    |   0.11.14    |
|   16.11.1    |   14.17.6    |   0.12.15    |   0.11.13    |
|   16.11.0    |   14.17.5    |   0.12.14    |   0.11.12    |
|   16.10.0    |   14.17.4    |   0.12.13    |   0.11.11    |
|    16.9.1    |   14.17.3    |   0.12.12    |   0.11.10    |
|    16.9.0    |   14.17.2    |   0.12.11    |    0.11.9    |
|    16.8.0    |   14.17.1    |   0.12.10    |    0.11.8    |
|    16.7.0    |   14.17.0    |    0.12.9    |    0.11.7    |
|    16.6.2    |   14.16.1    |    0.12.8    |    0.11.6    |
|    16.6.1    |   14.16.0    |    0.12.7    |    0.11.5    |
|    16.6.0    |   14.15.5    |    0.12.6    |    0.11.4    |
|    16.5.0    |   14.15.4    |    0.12.5    |    0.11.3    |
|    16.4.2    |   14.15.3    |    0.12.4    |    0.11.2    |
|    16.4.1    |   14.15.2    |    0.12.3    |    0.11.1    |
|    16.4.0    |   14.15.1    |    0.12.2    |    0.11.0    |
|    16.3.0    |   14.15.0    |    0.12.1    |    0.9.12    |
|    16.2.0    |   12.22.7    |    0.12.0    |    0.9.11    |
|    16.1.0    |   12.22.6    |   0.10.48    |    0.9.10    |
安装指定的版本
nvm install 17.0.1
Downloading node.js version 17.0.1 (64-bit)...
Complete
Creating C:\Users\Administrator\AppData\Roaming\nvm\temp

Downloading npm version 8.1.0... Complete
Installing npm v8.1.0...

Installation complete. If you want to use this version, type
使用特定版本
C:\Users\Administrator>nvm list

    17.0.1
    15.11.0
    14.16.0
  * 14.15.5 (Currently using 64-bit executable)

nvm use 17.0.1
Now using node v17.0.1 (64-bit)

C:\Users\Administrator>nvm list

  * 17.0.1 (Currently using 64-bit executable)
    15.11.0
    14.16.0
    14.15.5
nrm 资源管理工具,可以切换国内服务器下载

安装:npm install nrm -g 查看:nrm ls (注:单词list缩写,查看可用服务器) 切换:nrm use 服务器 测速:nrm test 查看哪个服务器最快

常用命令
npm -v      查看版本

查看react-router-dom所有版本
npm view react-router-dom versions

使用淘宝 NPM 镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org

全局安装与本地安装
npm 的包安装分为本地安装(local)、全局安装(global)两种,
从敲的命令行来看,差别只是有没有-g

npm install express          # 本地安装
npm install express -g       # 全局安装
npm install -S react@16.14.0   # 指定版本安装
npm i react-router-dom@5.2.0  安装指定版本
----------------------------------------------------------------------------
列出已安装的软件包
PS D:\Centos\PHPstudyWWW\react\demo02> npm ls react-dom
demo02@0.1.0 D:\Centos\PHPstudyWWW\react\demo02
+-- @testing-library/react@12.1.2
| `-- react-dom@17.0.2 deduped
`-- react-dom@17.0.2
----------------------------------------------------------------------------


npm list -g    # 查看所有全局安装的模块

npm list express  # 查看模块版本号

npm查看全局安装过的包
PS E:\node\Project> npm list -g --depth 0
C:\Program Files\nodejs
+-- body-parser@1.19.0
+-- express@4.17.1
+-- nodemon@2.0.12
`-- npm@6.14.15

查看本地配置
PS E:\node\Project> npm list --depth 0
Project@1.0.0 E:\node\Project
+-- art-template@4.13.2
+-- ejs@3.1.6
+-- express@4.17.1
+-- express-art-template@1.0.1
+-- mongoose@6.0.3
`-- nodemon@2.0.12

npm uninstall express  # 卸载 Node.js 模块
npm uninstall -g create-react-app  全局卸载

npm update express  # 更新模块

npm ls  # 列出已安装的软件包

npm search express  # 搜索模块

-y 的含义:yes的意思,在init的时候省去了敲回车的步骤,生成的默认的package.json
npm init -y # 创建模块

内容类型排列的 Mime 类型列表 类型/子类型扩展名 
npm install mime

引入第三方模块mime(需求:判断文件mime类型)
var mime=require('mime');

var img = 'xxx.png';
console.log(mime.getType(img));//获取类型
console.log(mime.getExtension('image/png'));//获取后缀

npm install jquery --nove-dev  # 安装jQuery

npm install jquery --save-dev  # 开发环境

全局安装vue-cli,命令行:
npm install vue-cli -g
vue -V
@vue/cli 4.5.11

全局安装webpack
npm install webpack webpack-cli -g

C:\Users\Administrator>webpack -v
webpack: 5.63.0
webpack-cli: 4.9.1
webpack-dev-server not installed

安装axios
npm install --save axios 

查看react最新版本
npm info react
npm info create-react-app
npm install --save react@17.0.1

cnpm 查看

C:\Users\ASUS>cnpm -v
cnpm@7.1.1 (C:\Users\ASUS\AppData\Roaming\nvm\v11.15.0\node_modules\cnpm\lib\parse_argv.js)
npm@6.14.16 (C:\Users\ASUS\AppData\Roaming\nvm\v11.15.0\node_modules\cnpm\node_modules\npm\lib\npm.js)
node@11.15.0 (C:\Program Files\nodejs\node.exe)
npminstall@5.8.0 (C:\Users\ASUS\AppData\Roaming\nvm\v11.15.0\node_modules\cnpm\node_modules\npminstall\lib\index.js)
prefix=C:\Program Files\nodejs
win32 x64 10.0.19043
registry=https://registry.npmmirror.com

C:\Users\ASUS>
Node.js REPL(交互式解释器)

Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。

Node 自带了交互式解释器,可以执行以下任务:

读取 - 读取用户输入,解析输入的 Javascript 数据结构并存储在内存中。

执行 - 执行输入的数据结构

打印 - 输出结果

循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。

Node 的交互式解释器可以很好的调试 Javascript 代码。

开始学习 REPL

我们可以输入以下命令来启动 Node 的终端:

$ node
> 
R read 读取(读取用户输入的JS代码)
E exec 执行(执行用户输入的js代码)
P pint 打印(打印用户输入的JS代码)
L loop 循环(后续所有js代码执行都会循环以上命令) 退出(按两下Ctrl+c)
Axios 是一个基于 promise 的 HTTP 库

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

在这里插入图片描述

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
//主要为跨域CORS配置的两大基本信息,Origin和headers
header('Access-Control-Allow-Methods: POST, GET, DELETE,PUT,OPTIONS');//fetch设置header头才能获取PUT请求
//接收header的Token
header("Access-Control-Allow-Headers:Token");
$arr=[
    'name'=>'sdf',
    'pwd'=>'123',
    'token'=>$_SERVER['HTTP_TOKEN']
];
echo json_encode($arr,JSON_UNESCAPED_UNICODE);

user.js

const axios = require('axios');

// axios.post('http://test.cc/aa/index.php', {
//     firstName: 'Fred',
//     lastName: 'Flintstone'
//   })
//   .then(function (response) {
//     // console.log(response.data);
//     const {name,sex,sex} = response.data;
//   })
//   .catch(function (error) {
//     console.log(error);
//   });


//async/await处理多个异步任务
//设置请求基本url地址
axios.defaults.baseURL="http://test.cc";
//配置请求头信息
axios.defaults.headers['Token']='token-value';

async function querydata(){
    var ret=await axios.get('/aa/index.php');
    return ret.data;
}

querydata().then(function(data){
    console.log(data);
});
            
关注
打赏
1665558895
查看更多评论
0.0423s