nodejs&es6_day01

nodejs&es6_day01

内容回顾

搭建Elasticsearch的集群

​ (1)数据的扩容(2)数据的备份

​ cluster、node、分片、复制

​ Elasticsearch天生支持集群操作,比Solr在这方面要优秀很多。

Java通过TransportClient操作的Elasticsearch

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
                .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300))
                .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9301))
                .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9302));

​ TransportClient

1.创建索引库
2.删除索引库
3.为索引库添加映射
4.为索引库添加文档
5.修改文档
6.删除文档
7.根据ID查询文档
8.条件查询文档
	idsQuery、termsQuery、termQuery、wildcardQuery[* ?]、matchAllQuery、queryStringQuery
9.分页、排序、高亮[keyword,高亮域,高亮的前缀,高亮的后缀]

SpringDataElasticsearch操作Elasticsearch[封装了TransportClient]

1.创建索引库
2.删除索引库
3.为索引库添加映射
4.为索引库添加文档
5.修改文档
6.删除文档
7.根据ID查询文档
8.条件查询文档
	idsQuery、termsQuery、termQuery、wildcardQuery[* ?]、matchAllQuery、queryStringQuery
9.分页、排序、高亮[keyword,高亮域,高亮的前缀,高亮的后缀]

(1)如何使用SpringDataElasticsearch原生接口中的API方法
(2)可以自定义的方式 findBy|getBy... + 模型类的属性名 [+ And/Or...模型类的属性名...]
(3)使用TransportClient原生的API
	NativeSearchQuery的使用

SpringBoot+SpringDataElasticsearch

今天内容

Node.js

ECMAScript6的语言

Node.js

chrome浏览器能运行JS语言的原因是浏览器内置了一个能解析JS的V8引擎。

Node.js其实运行环境,后台运行js的环境。 [JVM:后台运行java代码的运行环境]

模块化开发

​ JS声明一个变量 : var

​ JS声明一个方法:function funName(){}

​ 导出: exports

​ 导入: require

NodeJS开发web服务

接收请求

var http = require('http'); //引入http模块
http.createServer(function (request, response) {
    //request:封装的所有的请求数据
    //reponse:封装响应数据
    //200:成功的状态码
    // text/html 返回文件,浏览器会解析文本中的标签   text/plain [返回纯文本]
    // text/json   application/json这两个都是返回json串
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.end('<h1>Hello World</h1>');
}).listen(8888); //listen:设置监听的端口

console.log('Server running at http://127.0.0.1:8888/');

接收数据

var http = require('http');
var url = require("url");
http.createServer(function(request,response){

    response.writeHeader(200,{'Content-Type':'text/plain'});

    //var params = console.log(request.url);
    //console.log(params);
    //console.log(url.parse(request.url,true).query);
    var params =url.parse(request.url,true).query;
    for(var key in params){
        //key --->json的属性名
        //属性值--->params[key]
        console.log(key+"="+params[key]);
        response.write(key+"="+params[key]+"<br/>");
    }
    // var params = url.parse(request.url,true).query;
    //
    // for(var key in params){
    //     response.write(key+"="+params[key]);
    //     response.write("<br/>");
    // }
    response.end('');

}).listen(9999);

npm/cnpm/nrm/webpack

nodejs是后台的运行js的运行环境。使用js可以开发很多组件(echarts)

​ npm:可以从远端下载使用js编写的一些工具/插件。

下载:

局部下载:npm install echars

​ npm init :初始化NodeJS的前端项目。 [脚手架:构建开发的项目结构]

​ package.json: 当前的目录下出现一个文件package.json: 类似于Maven的pom.xml,作用:记录当前nodejs项目运行所依赖的工具/插件

​ npm install echars

​ 当前目录会出现一个目录node_modules,该文件夹下放的就是当前项目运行所依赖的工具/插件

​ npm install

​ 当获取到的前端项目中没有node_modules,需要根据package.json中记录的当前项目运行所需要的工具/插件进行下载

全局下载:npm install echars -g

​ npm root -g

​ 查看当前全局安装下载的插件所在的目录。

​ npm config 来修改下载的目录

cnpm: npm默认是从国外网站下载的,cnpm淘宝提供的一个国内下载工具/插件的地址。

切换下载地址:nrm ls 列出所有的下载地址列表,nrm use xxxx更换下载的地址

webpack

webpack是用js编写的一个打包工具。要使用,第一步要先将其下载到本地,第二步:使用webpack

将项目中的所有静态资源(js/css/image…)打包成一个js文件,这么做的好处:

​ (1) 只需要在页面中导入一次js就可以将所有依赖的资源导入

​ (2) 打包的过程中会将静态资源文件中的空格换行符通过去掉,文件的大小就会降低,减少用户的流量使用

​ (3) 更安全

​ (4)打包的过程中会将一些高级别的语法(ECMAScript6)翻译成低级别的语法。

安装流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EPRCwIb7-1603890400202)(assets/1575437633591.png)]

打包目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Emkdo6bo-1603890400204)(assets/1575431451145.png)]

js打包

src:

main.js

var bar = require('./bar')
var logic = require('./logic')

bar.info(logic.add(100,200));

bar.js

exports.info = function(str){
    document.write(str);
}

logic.js

exports.add = function(a,b){
    return a+b;
}

页面写一个300

webpack.config.js要和src是同一级目录

var path = require('path')

module.exports = {
    entry:'./src/main.js',
    output:{
        path: path.resolve(__dirname,"./dist"),
        filename:'index.js'
    }
}

通过cmd进入webpack.config.js所有目录,执行 webpack命令,打包成功后,会在dist目录下生成一个index.js,

只需要在自己的页面通过引入index.js就可以进行使用。

Css进行打包

webpack-dev-server:动态打包的插件。 vue-cli的脚手架构建vue的项目

ES6

ECMAScript6:前端js的语法规范,javascript完全遵从了改语法规范。

声明变量

var (全局的) / let (局部的) / const(常量,不可以进行修改)

模板字符串
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/jquery.min.js"></script>

</head>
<body>
    <table style="width:100%">
        <tr>
            <td>编号</td>
            <td>名称</td>
        </tr>
        <tbody id="tby">

        </tbody>
    </table>


    <script>
        let name = '赵敏';
        console.log("name为:"+name);
        console.log(`name为${name}`);

        var userList = [
            {'id':1,"name":'张三','color':'red'},
            {'id':2,"name":'张三1','color':'green'},
            {'id':3,"name":'张三2','color':'yellow'},
            {'id':4,"name":'张三3','color':'#aabbcc'},
            {'id':5,"name":'张三4','color':'blue'}
        ]

        var html = "";
        for(var i = 0 ; i < userList.length;i++){
            //html+="<tr style='background-color:"+userList[i].color+"'><td>"+userList[i].id+"</td><td>"+userList[i].name+"</td></tr>";
            html+=`
                <tr style="background-color:${userList[i].color}">
                    <td>${userList[i].id}</td>
                    <td>${userList[i].name}</td>
                </tr>
            `;
        }
        $("#tby").append(html);
    </script>
</body>
</html>

对象声明:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
       function person(name,age){
            return {"name":name,"age":age};
       }

       console.log(JSON.stringify(person('张无忌',29)));

       function person2(name,age){
           return {name,age};
       }
       console.log(JSON.stringify(person2('张三丰',99)));
    </script>
</head>
<body>

</body>
</html>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LEELGUkC-1603890400206)(assets/1575443007815.png)]

箭头函数

function method(params){

}

method => (params){

}

对象中使用箭头函数

<script>
        var vue = new Vue({
            el:"#app",
            data:{

            },
            methods:{
                method1:function(){
                    alert(1);
                },
                method2:()=>{
                    alert(2);
                },
                method3(){
                    alert(3);
                }
            },
            mounted(){
                this.method1();
                this.method2();
                this.method3();
            }
        });
    </script>
<script>
        var vue = new Vue({
            el:"#app",
            data:{

            },
            methods:{
                method1:function(params){
                    alert(params.name);
                    alert(params.age);
                },
                method2:({name,age})=>{
                    alert(name);
                    alert(age);
                },
                method3(){
                    alert(3);
                }
            },
            mounted(){
                this.method1({"name":"张三","age":18});
                this.method2({"name":"李四","age":28});
                this.method3();
            }
        });
    </script>
数组map的方法
<script>
        var arr = ["1","2","4","8","10"];
        for(var i = 0 ; i < arr.length;i++){
            arr[i] = parseInt(arr[i]);
        }
        console.log(arr);

        arr.map(j=>parseInt(j));
        
        console.log(arr);
    </script>
数组的push/join
var arr = ["1","2","4","8","10"];
        arr.push("22");
        console.log(arr);

        var rst = arr.join(",");
        console.log(rst);

数组reduce的方法
<script>
        var arr = ["1","2","4","8","10"];
       	arr.reduce((a,b)=>{return parseInt(a)+parseInt(b)});
        console.log(arr);
    </script>
Promise

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/axios-0.18.0.js"></script>
    <script src="js/util.js"></script>
    <script>
        function dw(){

            //get('rst3.json');
            //alert("444444");

            //问题:将请求发送后获取结果,然后再执行后续的业务操作(alert("444444"))
            //permise:
            //语法:
            // new Promise(function(resovle,reject){
            //  resovler执行成功后调用的方法
            //  reject执行失败后调用的方法。
            // });

            //then中的函数就是Promiese的function中的resolve
            //catch中的函数就是Promiese的function中的reject
            get2('rst.json').then((data)=>{
                alert(JSON.stringify(data));
                alert("44444444");
            }).catch(()=>{
                alert("执行失败了");
            });


        }
    </script>
</head>
<body>


    <input type="button" value="点我" onclick="dw()"/>
</body>
</html>

rst.json

{
  "id":1,"name":"张三丰","age":108
}

util.js

function get(url){
    axios.get(url).then((res)=>{
        alert(JSON.stringify(res.data));
    }).catch(()=>{
        alert("调用失败");
    })
}

function get2(url){
    return new Promise(function(resolve,reject){
        axios.get(url).then((res)=>{
            resolve(res.data);
        }).catch(()=>{
            reject();
        })
    });
}
对象的扩展方法(Object)
Object.keys({属性名:属性值});
Object.values({属性名:属性值});
数组的扩展方法(数组)
var arr = [10,20,21,33];
find查找,返回符合记录的集合
findIndex,返回符合记录的索引集合
includes:是否包含
Babel

export default

exports

require[ES5]---->import[ES6] 浏览器不支持import这种写法。

babel将高级语法转换成低版本语法,让浏览器能认识解析这些语法。

npm/cnpm install babel-preset-es2015 --save-dev
npm/cnpm install babel-cli -g

.babelrc

{
  "presets":["es2015"]
}

命名导出

let name='李四';
let age = 19;
let say = function(str){
    console.log(str);
}

export {name,age,say}
import * as api from './export1'

console.log(api.name);
console.log(api.age);
api.say("hello world")

默认导出

export default {
    data() {
      return {
        pickerOptions: {
          disabledDate(time) {
            return time.getTime() > Date.now();
          },
          shortcuts: [{
            text: '今天',
            onClick(picker) {
              picker.$emit('pick', new Date());
            }
          }, {
            text: '昨天',
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24);
              picker.$emit('pick', date);
            }
          }, {
            text: '一周前',
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit('pick', date);
            }
          }]
        },
        value1: '',
        value2: '',
      };
    }
  };
import api from './export1'

api.xxxxx

总结

nodeJS
	概念:
		node.js是chrome浏览器中的V8引擎抽取出来形成,主要的作用就是后台解析Javascript代码。是后台Javascript的运行环境。
			JVM:运行的java--->class
			node.js:运行的js
	语法:
		声明变量: var / let /const
		声明一个方法: function methodName(){} 
		exports导出  require[ES5]导入
		nodeJS编写一个web服务[http]
			var http = require('http');
			http.createServer(function(request,reponse){
				//request中获取数据
				//response响应到页面
			}).listen(8080);
			
	npm:从国外网站下载前端项目所需要的工具/插件/组件....
		缺点:速度慢
	cnpm:淘宝提供的类似于npm的功能
	nrm: 更换下载的url地址
	npm config:设置下载的默认目录
	下载:  npm/cnpm install 名称 [-g]
	npm init:初始化node.js的项目
	npm install :根据项目中的package.json中记录的当前项目需要的工具/插件/组件....来进行下载
	
	webpack:就是用js编写的一个打包工具。作用将js/css/image....静态资源进行打包操作,形成一个js文件,在html页面中只需要引入
		打包后生成js文件,就可以包含所有的功能。
		(1)导入方便
		(2)打包的过程中会对文件的内容进行压缩,帮用户节省流量同时更安全
		(3)可以将高级的语法自动翻译成低级语法 [浏览器不支持高级语法]
		webpack.config.js:记录的是打包的相关属性信息。
ECMAScript6语法
	如何声明变量 var  let  const
	模板字符串解决字符串拼接的问题
	箭头函数的使用
	数组的方法 map /push/json/reduce/find/findIndex/includes
	对象的扩展方法  keys  values
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值