ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

package、node、ajax

2022-01-17 09:32:36  阅读:109  来源: 互联网

标签:node npm 插件 http package js ajax 版本


package

初始化
npm init -y
如果没有在初始命令行状态
ctrl+c  回到初始命令行
{
 //项目名称,插件名称,上传到npmjs.com中允许别人查找使用
  "name": "0110",
 //1.2.3  1是大版本   2是中型版本(小版本)  3是小型版本(微版本)
 //1.大版本 重新重构了项目,大的框架发生改变
 //2.中型版本 需要给项目当中来添加一些新的功能
 //3.小型版本 修补项目中bug和漏洞
  "version": "1.0.0",
 //执行node项目的入口文件
  "main": "index.js",
  "scripts": {  //脚本,执行对应的node命令
    "test": "echo \"Error: no test specified\" && exit 1",
    //脚本执行方式有两种,
    //一种start install这样的脚本直接通过 npm start
    "start": "node main.js",
    //另一种是其他任何字符,执行时 npm run 字符
    "abc": "node main.js"
  },
  "keywords": [], //关键词 在npmjs官网上搜索关键词可以被查找使用
  "author": "",//作者
  "license": "ISC",//版权
  "description": "",//描述 做的插件可以被别人快速找到并且查看它的信息
  "dependencies": {  //项目依赖  项目当中用到的插件
    "lodash": "^4.17.21"
  },
  "devDependencies":{  //开发依赖  打包、测试
     "gulp":"^4.0.2"
  }
  
}

安装

npm install 包名 原命令
npm i 包名  简写命令
npm i包名  安装这个插件的最新版本
npm i包名@3 安装这个插件的版本为3这个大版本的最高版本
npm i包名@3.1安装这个插件的版本为3.1这个版本的最高版本
npm i包名@3.1.20 安装这个插件的版本为3.1.20这个版本
3.1.1-3.1.24   3.2.1-3.2.20    4.0.0-4.1.2
因为node本身就有版本不兼容性,所以有很多的包也有不兼容性
npm i 包名 -g 全局安装
需要下载一些命令插件,就需要全局安装
全局命令安装在node的目录下面
使用nvm -g安装的就是在当前对应的node版本中的文件中
一旦切换node版本,就需要重新安装全局的命令

anywhere

服务器插件 类似于live Server 可以修改当前服务的端口号
npm i anywhere -g
anywhere  执行
anywhere  端口号 执行

nodemon

node服务自动重启插件
npm i nodemon -g
nodemon node 入口文件

nrm

切换npm库的镜像地址
npm i nrm -g
nrm ls 显示当前所有镜像地址
nrm use 镜像地址名 切换镜像地址
nrm test 镜像地址名 测试指定的镜像地址

npm i 包名 -S npm i 包名 npm i 包名 ---save 项目依赖下载

三种一样
npm i lodash -S
npm i lodash 
npm i lodash --save
安装后会在package.json中的
"dependencies":{

}
"jQuery":"^3.1.0"   锁定大版本 major
"jQuery":"~3.1.0"   锁定大版本和小版本minor
"jQuery":"3.1.0"    锁定所有版本
"jQuery":"*"        最新版本
如果更新时,会根据这个列表内容来更新,比如锁定大版本时,会更新当前指定的大版本中最高版本

npm i 包名 -D npm i 包名 ---save-dev 开发依赖下载 打包、压缩、测试

gulp

打包工具
npm i gulp -D
npm i gulp --save-dev

webpack

打包工具
npm i webpack@4 -D
npm i webpack@4 --save-dev

更新安装

npm update
npm i
安装和更新 package.json 中的所有dependencies和devDependencies里面的插件
"dependencies": {
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "gulp": "^4.0.2"
  }

卸载

npm uninstall 包名

清除

因为安装过程中出现断网,错误等情况造成无法重新安装,安装时报错4048,用来清除缓存安装的包
错误码是-4048需要清除
npm cache verify
npm cache clean --force
npm 包管理  下载,上传、更新插件(全局命令插件、项目依赖的插件、开发依赖的插件...)
package.json

node

node运行

创建一个js文件,在js中可以写入任何js内容,但是不能写DOM、BOM、事件
在命令行中 NODE ./路径/文件名
例如在 js文件夹下有一个main.js
node ./js/main.js
或者node ./js/main

开始创建服务器后端

var http=require("http")
加载http模块 http是一种协议,node将这总创建http服务的方式封装在一个插件中,因为是node自带的所以我们叫它http模块

var http =require("http");与ES6中 import http from "http"  相同
因为node在不同版本中支持ES6不同,操作也不同,关于node如果操作ES6的模块化暂时没有
require 用于ES5的node模块化开发 这种方式commonJS

在a.js中使用
module.exports={a:1,b:2}
在main.js中 不需要带扩展名  必须路径以./开始
var obj=require("./a")
如果一个Js中需要导出多个内容
在 a.js中使用
module.exports={a:1,b:2};

在main.js中  不需要带扩展名  必须路径以./开始
var obj=require("./a")


如果一个js中需要导出多个内容

在b.js中使用
exports.obj={a:1,b:2};

exports.abc=function(){
    console.log("aaa");
}
在main.js中 
var {obj:obj1,abc}=require("./b);
这里的:是指起别名

创建服务

创建一个http的服务,并且返回该服务对象
var server=http.createServer(function(req,res){

})
server.listen(4001);
server.listen(端口号,IP地址,当开启服务执行函数);
server.listen(4001,"10.9.25.101",function(){
    console.log("服务开启")
});


开启服务,并且侦听这个服务的端口号是4001
req  请求  客户端向服务器发送的请求数据存在这个对象中
res  响应  服务器响应客户端发送信息在这个对象中

res.write("abc");  给响应信息中写入内容
res.end();  响应信息写入完毕发送给客户端 

SSR    Server Side Render
CSR    Client Side Redner

设置响应头
res.writeHead(状态码,响应头对象);

响应头对象
    Content-Type 内容类型  MIME类型
    text/html 文本和html内容 返回的内容就会转换为html
    application/json json格式
    image/jpg  jpg格式
    ;charset=utf-8  设置返回的内容为utf-8编码转换
    {
        "Content-Type":"text/html;charset=utf-8"
    }

ajax

创建ajax

var xhr=new XMLHttpRequest();
侦听ajax加载服务器发回的数据完成
xhr.addEventListener("load",loadHandler);
打开服务通信 使用get方式通信,url地址+?发送的数据  key1=value1&key2=value2
xhr.open("GET","http://localhost:4003?"+str);
发送数据
xhr.send();


function loadHandler(e){
    console.log(xhr.response)
}

GET

GET 在通信时,一般只做了一次通信
通过url后面的search ?后面来携带发送给服务端的数据
这种发送时,提交数据是明文,而且不能携带过多数据
如果在同域情况下cookie也是可以携带数据,跨域情况cookie不能携带数据
当使用GET发送请求,目的本来就是获取,其实主要并不是发送数据给服务端,目的还是获取数据,
只不过在这里通过url访问时携带了一些明文的数据
如果这次请求的地址与上次请求的地址相同时,这种情况会开启访问缓存

POST

当发送数据时,通过send将数据发送给服务端  可以发送字符串,但是不能直接发送数组和对象
POST  一般会发起两次请求  地址请求,数据发送请求
POST提交数据是不会缓存
一般可以发送大量的数据
var xhr=new XMLHttpRequest();
xhr.addEventListener("load",loadHandler);
xhr.open("POST","http://localhost:4004");
xhr.send(str);


function loadHandler(e){
    console.log(xhr.response)
}

标签:node,npm,插件,http,package,js,ajax,版本
来源: https://www.cnblogs.com/ciyisheng/p/15812173.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有