node

node

dos命令行

1:ipconfig 查看本机的ip信息

2:ipconfig /all 查看本机ip信息

3:cls 清屏

4:exit 退出

5:D:  直接进入指定磁盘目录

6:dir 查看当前位置下的所有目录文件

7:cd 文件夹名字(不要是中文)   进入到指定的文件夹

8:cd ../ 返回上级目录

9:cd ./ 返回当前目录

10:cd / 返回根目录

11:ls -al查看所有文件

12:mkdir 创建一个目录

13:touch 创建文件例如(touch .index.txt)

14:echo 编辑文件内容

写法(echo 编辑的内容 >index.txt)

(echo 编辑的内容 >>index.txt)一个大于是写入 两个大于号是追加内容

15:cat 查看某个文件的内容

16:rm -rf 文件名  删除文件名

17:vi 文件名 调出vim编辑器

i/o/u 任意一个进入插入编辑状态 esc退出编辑状态  shift+: 进入插入编辑    q不保存并退出 q!强制退出 wq保存并退出

webostrom中打开命令行

view->Tool windows ->terminal z 在当前目录下打开命令行

https:安全传输协议

http:传输协议

ftp

域名

port:端口号 一个ip有0-65535个端口号

path:路径

sechme:主机名 port/path?问号传参

qur

npm

node  支持 es6 let const 服务端没有兼容性

node 全局对象global

npm init  当前文件名 不能是 中文 不能是大写 不要有特殊符号

npm install 包名 --save / --save-dev

--save 保存到 package.json 的dependencies 属性里

--save-dev 保存到 package.json 的devDependencies 属性里

当前项目依赖包 安装到哪个文件夹

npm root

···

想要在网页打开你本地的文件,输入這个

npm install http-server -g

使用在当前目录下,打开命令行 输入以下命令即可

http-server (默认是8080端口号 -p )就能在网页看到目录

全局安装

npm install package -g

npm root -g

mime类型

mime.lookup(pathname)检测他的类型

mime类型

html text/html

js application/javascript

css text/css

文档 text/plain

jpg  image/jpg

jpeg image/jpeg

png  image/png

form application/x-www-form-urlencoded

node

node 一个运行环境,让js可以在服务端运行 浏览器客户端js 是不可以操作本地系统

node 提供了很多操作系统api

异步非阻塞 i/o 读写 输入和输出端口

可以同步也可以异步

自带模块化 common js 规范 require js amd规范 sea.js

运行js

运行js文件 可以打开命令行 node

(文件名)就可以

run

运行js

GET系列和POST系列的区别

> GET系列和POST系列的区别:

> 缓存问题:

> 1:get有缓存问题 解决方案在url?_=随机数/时间戳

> URL末尾追加随机数的方式清除缓存: xhr.open('get','/temp?id=12&_='+Math.random())/时间戳(new Date().getTime())

> 2:post没有缓存问题

> 传输数据大小

> 1:get 需要将发送给后端的数据拼接到url?name=liwenli&id=1  URL的长度是有限制的(谷歌8KB、火狐7KB、IE2KB)如果传递的内容比较的多,URL会很长,超出的部分,浏览器会截取。

> 2:post 通过请求体  xhr.send(JSON.stringify(data))没有大小限制

> 安全问题

> 1:get是通过问号传参传递信息的,很容易被url劫持,导致信息的泄露或者恶意修改等

> 2:post 比较安全

> GET主要应用于给服务器的少,从服务器获取的多,例如:获取服务器上的数据进行展示和数据绑定...

> POST主要应用于给服务器的多,从服务器获取的少,例如:用户注册...

模块

模块分为:内置模块、自定义模块、第三方模块

node自带模块化 commonjs 规范

require() 引入模块

module.exports 导处模块

requirejs amd 规范 sea.js

内置模块: 搭建server的内置模块 例如:http fs url 。。

自定义模块:我们自己创建的模块,引入的时候需要引进正确的路径

第三方模块:我们用npm下载的文件引入进去  例如:require('vue') 引入node_moudele  里面的vue

引入导出模块

require() // 引入模块

module.exports // 导出模块   (先把文件引入进来,在引入文件里面的模块)

requirejs amd 规范 sea.js

fs.exists() 根据路径判断文件是否存在

批量导出

a:

> module.exports.sum=sum--导出模块,

> 批量导出 module.exports={  sum:sum  ,age:age}

> exports.name=sum exports无法进行批量设置,因为他们不在module一个空间地址里面

> exports 不能批量导出

b:let obj= requiret('./a.js'); 引入這个模块

同步异步读取文件

异步的有回掉函数 readFile  没有返回值

同步是返回值 var result=fs.readFileSyn('.index/html')

readFileSync 同步读取文件

readFile 异步读取文件

@param1:err错误信息,如果读取成功就是null

@param2:result  结果

let resHTML=fs.readFile('./index.html','utf-8',function(err,result){

if(erro){

有错误信息,输入错误信息

console.log(erro)

}else{

没有错误信息就输出null,输出结果

console.log(result)

}

})

同步判断

异步判断是一个回调函数

fs.exists('./index5.html', function (result) {

console.log(result);

});

fs.exists() 根据路径判断文件是否存在

异步判断

同步判断 有返回值 flag

let flag=fs.existsSync('.'+pathname);检测文件是否存在,存在的话返回true

fs.existsSync('./index5.html');

写入weiteFile 异步写入

@param1: 文件路径

@param2:写入的内容

@param3:options

{

encoding:'utf8'最后一个参数是這个

flag:'w'默认参数w写入,并将原有覆盖 a 追加

}

async callBack 异步是回掉函数

写入内容到data.txt

fs.writeFile('./data.txt','hello nodejs',{flag:'a'}function(erro){

console.log(erro) 如果输出的是null 说明写入成功 如果输出错误,那就有问题

})

weiteFileSync同步写入

let resData=fs.readFileSync('./data2.text')

fs.weiteFileSync('data.txt',resData)

把data2的内容写投入到'data.txt'里面

写入的内容(JSON.steingify(obj)) 是字符串格式/buffer格式

表单

action 提交到哪里接口

method get 或者post请求

表单内元素 需要设置name属性

onsumit="return false"  阻止表单默认提交行为

post端口请求

检验是哪个请求 mothod

let str = '';

// 接收请求体内容

req.on('data',

function (data)

{

str += data;

}

);

// 接收完毕后 触发

req.on('end',

function ()

{

res.end(str);

得到字符串格式

letobj=JSON.parse(str)

json格式的字符转化为json格式的对象

}

);

get接口请求

res.setHeader('Content-Type','text/html;charset:utf-8');

res.end(JSON.stringify(query)) 参数在页面返回json字符串

项目跑起来

首先你要在项目目录下npm install gulp -g

然后再npm install

最后npm run start/npm start,端口监听成功

jsonp

跨域

> 协议 域名 端口 三者一致

> 同源策略限制 XMLHttpRequers请求

> img script 不存在跨域

> 利用script标签不存在跨域,我们给src属性url地址,只要能找到就会将js引入进来

我们把请求的url地址设为script标签src属性,并且和后台定义一个字段,将我们全局中的函数名传给后台cb=callBack

> jsnp跨域只支持get请求

> jsonp:'cb';cb=callBack

>     jsonpCallback:'',//制定jsonp回掉函数的名称      value名字

>     重写jsonp url请求种,回掉函数名

> 后台默认是一个函数callback

跨域解决常用

> jsonp 利用script 的src

> cors 跨域

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,638评论 2 41
  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,491评论 1 37
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    Myselfyan阅读 4,087评论 2 58
  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宫若石阅读 1,117评论 0 1
  • 1.基础 在互联网中,终端与终端之间的交互都必须通过协议进行的,就像我们使用浏览器上网,使用的是HTTP协议或HH...
    LinM1993阅读 574评论 0 1