跨域 node git
异步回调地狱:就是多个异步请求嵌套的表现
瑕疵:后期维护难
解决:通过promise技术
什么是promise:就是一种异步编程的解决方案
有三个状态:进行中、成功了,失败了
var p1 = new Promise(function (resolve, reject) { // Promise构造函数 有1个实战 方法
// 方法有2个形参 底层 也是 方法
//1.异步处理代码
//2.判断异步结果
if (操作成功) {
resolve(data) //数据处理完成
} else {
reject(err) //数据处理出错
}
})
var p2 = new Promise(....)
var p3 = new Promise(....)
...
p1
.then(function (data) {
console.log('操作成功,数据:' + data)
return p2; //相当于将p2的代码拿过来执行,然后继续调用方法
})
.then(function (data) {
console.log('操作成功,数据:' + data)
return p3; //相当于将p3的代码拿过来执行,然后继续调用方法
})
.then(function (data) {
console.log('操作成功,数据:' + data)
return p4; //相当于将p4的代码拿过来执行,然后继续调用方法
})
//....
.catch(function(err){
console.log(err)
})
.....
回调,回调,就是回头调用的意思,主函数的事先干完,回头再调用传进来的函数
跨域导致原因:浏览器同源策略
同源策略规则:只要 协议、域名、端口 有一个不一样 则称之为 跨域
同源策略:保证网站数据安全
1-后端声明header头 header("Access-Control-Allow-Origin: *")
2-**JSOP原理 2.1-静态页面通过script标签加载接口,
2.2-接口调用函数 实参是要响应的数据,
2.3-静态页面声明函数,接受参数
3-服务器配置(了解)
4-**前段代理
jq 是基于js封装的一个库(强调 库是一个文件,框架是多个文件)
用JS封装的库,
将原生JS代码封装起来,提供简单的方法供外部操作。
好处:1-更加方便操作网页,2-解决兼容性问题
下载:1-jquery.com/download 2-百度jq cdn
版本:1.x(兼容ie) 2.x 3.x 国内还是推荐使用1.x
JQ->JS $()[0]
JS->JQ $(JS标签对象)
选择器
CSS选择器
过滤选择器 :first :last :eq :odd :even
语法:$(选择器)
常用方法:prev()/next()/parent()/parents()/find()/sibling()
样式1:$().css(CSS属性名,CSS属性值) $().css(JSON对象)
样式2:$().add/remove/has/toggleClass(类名)
属性 :$().attr(属性名,属性值) $().attr(JSON对象)
内容:$().html/text/val() 不传参获取,传参设置
节点:第一个子prepend 最后子append 前兄弟before 后兄弟after 删除remove
$().事件类型(function(){ })
$().on(事件类型,function(){})
委托$(父).on(事件类型, 子, function(){})
循环
$.each(数组/对象,function(index, item){});
$(选择器).each(function(index, item){ });
实现开发项目多人协作开发
为了避免代码冲突或丢失使用版本控制软件
版本控制软件是什么:就是一个软件
作用:记录代码每次修改,万一冲突或丢失可以找回
种类:git(黑猫)、svn(龟)
1-得先有仓库 存放项目代码
2-通过版本控制软件 管理仓库代码
就是一个网站
作用:创建仓库,存放项目代码
好处:1-防丢失,防误删 2-便于多人协作开发
1-多人修改代码冲突 解决:通过git pull 然后提交
2-代码丢失(1别人误删,2版本回滚)
解决:查看提交日志,然后回滚
查看分支:git branch
创建分支:git branch 分支名
删除分支:git branch -d 分支名
切换分支:git checkout 分支名
合并分支:git merge 分支名 (注:将其他分支代码合并到当前分支)
就是用来下载node第三方模块的命令行工具
去哪下:不用下,node装好了自带的 直接用
验证:DOS窗口敲npm -v
下载模块:npm i/install 模块名或模块名@版本号 默认--save/--save-dev -g
卸载模块:npm uninstall 模块名
思考:--save和--save-dev有什么区
相同点:1-都是下载第三方模块,2-都会在package.json中记录
不同点:记录的位置不同
-g
在全局目录 npm config list去看
作用:只能在dos窗口敲命令,切记切记切记加-g项目中不能require
因为需要压缩项目中的js、css等静态资源,从而减轻服务器压力,加快访问速度
是前段自动化构建/压缩工具
从而减轻服务器压力,加快访问速度
Sass(SCSS)* vue库/框架
LESS* react库/框架
导入 @import '路径及文件名';
变量 $变量名: CSS属性值;
嵌套:咋大括号中写选择器即可 会自动加父前缀
混入:@mixin 名称($变量:默认值) {} @include 名称
继承:%名称 {} @extend %名称 jq extend({}) es6 extends 子覆盖父普通方法 子构造函数super
函数:@function 函数名() { @return } 调用 CSS属性名: 函数名()
其次SASS和LESS区别:1-声明变量分别为$和@,2-实现方式
Less是基于JavaScript,是在客户端处理的。Sass是基于Ruby的,是在服务器端处理的。
将一个复杂的程序,依据一定的规则/规范封装成几个块/文件,内部具体实现是隐藏的只保留部分接口/方法给外部使用
可以解决命名冲突;更好的分离,按需要的加载;提高代码可维护性、可扩展性;
什么是闭包:两个函数彼此嵌套,返回内部函数
特点:1-局部变量常驻内存,2-函数体外可以使用
设计模式:前辈的开发经验总结的开发思想
思想好处:1-便于维护,2-增强代码重用性,减少代码冗余等

跨域 node git的更多相关文章
- CORS 跨域 node |XMLHttpRequest 跨域提交数据 node
node服务端 app.post('/getdata',function(req,res,next){ req.setEncoding('utf8'); res.setHeader('Access-C ...
- 玩转spring boot——ajax跨域
前言 java语言在多数时,会作为一个后端语言,为前端的php,node.js等提供API接口.前端通过ajax请求去调用java的API服务.今天以node.js为例,介绍两种跨域方式:Cross ...
- 深入浅出:了解jsonp跨域的九种方式
什么是“”跨域”: 跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容.由于安全原因,跨域访问是被各大浏览器所默认禁止的.当一个域与其他域建立了信 ...
- angular之跨域
一.什么是跨域? 跨域是指一个域下的文档或者脚本去请求另一个域下的资源.(广义) 广义的跨域: 1.资源跳转:链接跳转.重定向.表单提交. 2.资源嵌入:<link>.<script ...
- js跨域请求解决方案
什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 广义的跨域: 1.) 资源跳转: A链接.重定向.表单提交 2.) 资源嵌入: <link>.&l ...
- Node.js配合node-http-proxy解决本地开发ajax跨域问题
情景: 前后端分离,本地前端开发调用接口会有跨域问题,一般有以下3种解决方法: 1. 后端接口打包到本地运行(缺点:每次后端更新都要去测试服下一个更新包,还要在本地搭建java运行环境,麻烦) 2. ...
- 借助node实战JSONP跨域
一.前言: 浏览器安全是基于同源策略的.所谓同源策略就是三相同: 1.协议相同: 2.域名相同: 3.端口相同. 但,凡事都是有利弊,同源策略也导致了我们想用AJAX跨域请求,但NO!!为了规避这种限 ...
- Node.js实现CORS跨域资源共享
什么是CORS CORS(Cross-origin resource sharing),跨域资源共享,是一份浏览器技术的规范,用来避开浏览器的同源策略 简单来说就是解决跨域问题的除了jsonp外的另一 ...
- vue-cli3.0+node.js+axios跨域请求session不一样的问题
一.问题重述 使用的是,前后端分离,前端vue+axios请求,后端使用node搭建服务端接口,遇到的问题是,我通过登录接口吧数据存储型在session,我登录上以后,发现再次验证登录(另一个接口)的 ...
随机推荐
- 在非NDK编译条件下使用Android Log函数
解决的需求 有些时候不能在NDK环境编译,或者使用NDK编译会颇费周折,然后又想使用Android系统自带的Log类方法,那么我们就可以使用dlopen来实现我们的目的.比如在OpenCV中添加And ...
- 解决MySql客户端秒退(找不到my.ini)
问题说明(环境:windows7,MySql8.0) 今天安装好MySql后启动MySql服务-->启动服务都失败的就不要往下看了,自行百度解决. 打开客户端秒退,但在cmd中是可以使用数据库的 ...
- Windows一些技巧
更改文件夹的显示名称 在要修改的文件夹下创建desktop.ini,在文件中输入: [.ShellClassInfo] LocalizedResourceName= [要显示的名字] 在CMD中输入命 ...
- 剑指offer-面试题53_2-0~n-1中缺失的数字-二分查找
/* 题目: 寻找递增数组0~n-1中缺失的数字. */ /* 思路: 变形二分法. */ #include<iostream> #include<cstring> #incl ...
- 修改Linux中ssh协议中的默认端口号22
说明:最近的一台服务器老是提示异常登录.主要原因是你的账户和密码可能太简单了,别人用默认的端口22进行登录. 打开SSH端口所在文件 vim /etc/ssh/sshd_config 进入编辑模式,将 ...
- c++编程之内存模型
我们在编程的时候,无可避免要申明变量,在这个变量可以是在()中,可以在{}中,也可以直接在外面,也可以用new的方式.那么当我们在申明变量的时候,实质上我们所做的工作是:关联了一个内存模型! 上代码: ...
- Email-发送邮件
Email 发送邮件 import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIME ...
- linux 文件系统管理三部曲之二:创建文件系统
创建文件系统的含义:就是格式化一个硬盘分区,不同的格式化方式,就是创建了不同的文件系统. 格式化: 低级格式化:划分分区前执行,主要是划分硬盘的磁道等. 高级格式化:划分分区后执行,创建文件系统 创建 ...
- 对于tensorflow中的gradient_override_map函数的理解
# #############添加############## def binarize(self, x): """ Clip and binarize tensor u ...
- 0级搭建类005-Oracle Solaris Unix安装 (11.4) 公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...