C/C++教程

package、node、ajax

本文主要是介绍package、node、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)
}

这篇关于package、node、ajax的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!