node

作者: web前端ling | 来源:发表于2017-06-14 17:39 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/gjheqxtx.html