查看详情

Node.js开启Https的小实践

最近自己的 https://www.jackzoo.org/ 切换到了 https。其实去年想把博客给迁移过去,但是太穷找了个免费的证书(可以去这里弄Let's Encrypt),实际效果不是很好。 (可以访问 https://www.jackpu.com )但是最近腾讯云推出了免费的ssl证书申请。楼主是亲测有效的。(我没有打广告) 申请成功后,你直接下载证书就可以用了。 配置nginx 在/etc/nginx/conf.d/下加入你的域名配置比如xxx.com.conf,内容如下 server { listen 80; listen 443 ssl; server_name www.xxx.com; ssl_certificate /etc/nginx/ssl/www.xxx.com_cert.crt; ssl_certificate_key 详情 »

查看详情

React Native 开发小Tips

相信好多写React Native的都是前端出身,当然遇见问题的,也很多时候会想从前端出发,但由于React Native本身的限制,并不是支持足够多的属性和样式,所以Bo主结合自己的开发实践,并总结了一些将来开发可能会遇见的问题并给出一些小的代码参考;(PS实现不好的希望能大家提出看法,自己也会更新)。 自己将代码放到了example下,并且做成了一个App.这样可以查看具体运行效果: 截图1: 截图2: 项目地址 开始 git clone https://github.com/JackPu/react-native-tips.git 进入example 目录 react-native start 用xcode打开ios目录下的项目,运行就可以看到上面的运行界面了。 1.关于按钮 写习惯了html我们看到按钮,第一时间想到的便是Button,但是目前React Native并没有这个组件,不过没关系,我们可以使用 TouchableHighlight,TouchableOpacity来实现按钮组件,当然常用的样式可以应用在上面,形成格式各样的按钮。 <TouchableHighlight onPress={this._onPressButton}> <Text>This is Button& 详情 »

查看详情

写给刚入门的前端工程师的前后端交互指南

作为刚接触前端的不久的童鞋,大家都会兴奋于CSS和JS所带来漂亮界面,然而,前端工程师除了UI重构外,还有非常重要的职责在正确的区域渲染出服务端的数据。毕竟,我们要构建一个大的web应用,必然不是普普通通的静态页面构成。 下文将罗列将来前端工程师应该必备的同后端打交道的常用技能。 服务端渲染 谈起服务端渲染,对于动态服务而言,这个世界上跑的大多数页面都经历过服务端的数据渲染,接口->前端赋值->模版渲染 。这一切都在服务器完成,我们查看源码时候,可以看到完整的html代码,包括每个数据值。 常用的php模版有,Smarty,Blade,Mustache,如果你们团队使用Smarty,我们可以看到一些view的文件里会前套Smarty的模版语言; <div> {foreach $list as $item} <h3>{$item['name']}</h3> <p>{$item['desc']}</p> {/foreach} </div> 如果Node, 详情 »

查看详情

RequireJS项目优化

如果大家使用requirejs来构建自己的项目的话,到后期必然遇到这样的问题,官方文档也给出了解决方案和策略,当然我们还有第三方的构建工具gulp和grunt来实现我们的目标。 先聊聊官方的构建工具r.js,官方声称优化工具是支持Node, Java 以及 Nashorn环境的。我们当然选择node啦。 npm install -g requirejs 安装完成后,我们可以通过输入r.js命令来进行项目的文件优化。先看看官方的例子吧: main.html + css - common.css - main.css + scripts - require.js - main.js - one.js - two.js - three.js main.html文件内容如下: <!DOCTYPE html> <html> <head> 详情 »

查看详情

十个由浅入深的Angular.js面试问题

虽然只有10个问题,但是覆盖了angular开发中的各个方面,有基本的知识点,也有在开发过程中遇见的问题,同时也有较为开放性的问题去辨别面试者的基础水准和项目经验(PS:答案仅供参考~)。 1. ng-show/ng-hide 与 ng-if的区别? 我们都知道ng-show/ng-hide实际上是通过display来进行隐藏和显示的。而ng-if实际上控制dom节点的增删除来实现的。因此如果我们是根据不同的条件来进行dom节点的加载的话,那么ng-if的性能好过ng-show. 2.解释下什么是$rootScrope以及和$scope的区别? 通俗的说$rootScrope 页面所有$scope的父亲。 我们来看下如何产生$rootScope和$scope吧。 step1:Angular解析ng-app然后在内存中创建$rootScope。 step2:angular回继续解析,找到{{}}表达式,并解析成变量。 step3:接着会解析带有ng-controller的div然后指向到某个controller函数。这个时候在这个controller函数变成一个$scope对象实例。 3. 表达式 {{yourModel}}是如何工作的? 它依赖于 $interpolation服务,在初始化页面html后,它会找到这些表达式,并且进行标记,于是每遇见一个{{}},则会设置一个$watch。而$interpolation会返回一个带有上下文参数的函数,最后该函数执行,则算是表达式$ 详情 »

查看详情

在Macbook中安装ElasticSearch

今日项目需要一个小型的搜索的功能的支持,有很多开源的搜索引擎啦,当然Elasticsearch个人认为上手容易,安装也比较方便。 ES安装前需要确认你笔记本上已经安装了java,如果没有安装了,可以oracle官网下载就行了, java弄完后,我们可以在命令后工具中输入java -version查看版本信息 安装ElasticSearch Mac上安装ES可以有很多方法,当然brew是不二选择。 输入下面命令: brew update brew install elasticsearch 下载完成后,可以输入 brew info elasticsearch查看安装信息 按照上面说的,我们直接输入elasticsearch ,然后服务启动了,我们可以直接输入访问: 127.0.0.1:9200 浏览器会显示一段json数据 简单的CRUD 接下来我们可以直接试试简单的创建索引和搜索;大家可以用一些http工具或者curl也行去进行完成基本的请求服务; 创建一个资源,我们用postman选择put 然后在地址栏输入 127.0.0.1/posts/post/1 我们添加的内容如下: ``` js { "title": 'Tony Stark', "content": 'Tony Stark is 详情 »

查看详情

使用ES2015开发Angular1.x 应用指南

关键词:架构, 文件结构, 组件, 单向数据流以及最佳实践 来自 @toddmotto 团队的编码指南 Angular 的编码风格以及架构已经使用ES2015进行重写,这些在Angular 1.5+的变化可以更好帮助您的更好的升级到Angular2.。 这份指南包括了新的单向数据流,事件委托,组件架构和组件路由。 老版本的指南你可以在这里找到, 在这里你能看到目前最新的. 目录 模块架构 1. 基本概念 1. 根 模块 1. 组件模块 1. 公共模块 1. 低 级别模块 1. 可扩展的文件结构 1. 文件命名规范 组件 1. 基本概念 1. 支持的属性 1. 控制器 1. 单向数据流和事件 1. 状态组件 1. 无状态组件 1. 路由组件 指令 1. 基本概念 1. 详情 »

查看详情

面试笔记

算是补上前面欠的内容。聊聊面试, 今日面试遇见一特尴尬的事情,读错面试候选人的姓名了,就面试者反映而言,应该这种事情发生的还是挺多的,多音字谁也不好拿捏。这只是面试的一个小小的环节,但是面试就是这样,会遇见不同的面试官,他们会有各种偏好,同样的作为面试官而言,他们也会遇见不同面试者,有合拍的也有比较“抗拒”的。不过做为面试者而言,自己还是认可这个关键词“真诚”。 自己作为一个反面例子,聊下面试者应该如何去更好的吸引公司面试官的注意力。 用心准备你的简历 简历真的是非常重要的一面,整洁,清晰,点明关键词。其实这一点是自己后来有幸参与面试官的工作发觉的。作为web developer之前会觉得能力最重要,其余的可以不用关心。后来在参与面试时发现,简历作为第一环节,真的会让某些随意的人挂掉,比如自己遇见的一些情况: 自己作品页面挂掉. 项目一笔带过,经常就只写时间,和工作单位,做过xxx; 排版混乱,标题区分不明显; 错别字,错单词; 一个现实,真的不是所谓每份简历都给机会的,对于面试官而言,很短的时间需要确认此人是否需要进一步面试,简历内容是否有序且合理,能够直接命中面试官的核心要求,比如透过具体项目我接触了什么技术,并解决了什么问题,可能恰恰命中面试官最为核心的要求。排版一定要整洁,即每个区域能够明显看到差别,并且有有条理的去叙述自己技能特长,不啰嗦, 详情 »

查看详情

[译]使用karma进行angular测试

紧随前文如何对Angular Controller进行单元测试, 但是我们也提到了前文工作流程的不方便,简单总结上前文进行测试的一个流程: 修改测试代码; 刷新浏览器; 查看测试结果; 该方法最大的缺陷就是,我们每次都得手动的去刷新我们的浏览器。但是如果我们需要测试不同的浏览器我们又应该如何处理呢? 而本文将提出一个自动化测试的方案,从而解决这些问题。 关于Karma Karma是一个由AngularJS 团队创造的JavaScript测试工具。前面我们写过了Jasmine的一篇文章《开始对Angular App进行单元测试》 而Karma提供了非常有用的工具去帮助我们进行Jasminede的测试。 安装 Karma 你在这里可以看到更为详细的安装文章,而本文随后也会概括总结一些。首先你得安装node.js,如果安装了则跳过,没有安装的可以看这里 注意官方文档中有说明,Karma在某些版本的node工作不那么友好。然而作者本身的v0.12.x并没遇见什么问题。打开你的命令行软件,我们输入下面命令, mkdir CalculatorKarma cd CalculatorKarma echo {} >> package.json bash 接下来我么用npm安装karma, npm install karma --save-dev 如果安装成功, package.json中将会有下面内容: { "devDependencies": { " 详情 »

查看详情

[译]如何对Angular Controller进行单元测试

上面一篇文章简单介绍了如何使用 Jasmine 进行JavaScript的单元测试 我们用了一段简单的代码进行计算的测试。 接下来我们将其延伸到我们对Angular Controller的测试中。如果你不太了解angular也没关系,下文也会提及关于Angular的一些知识。 写个简单的Angular App 在开始写测试之前,我们先写一个简单的计算App,它会计算两个数字之和。 代码如下: <html> <head> <script type="text/javascript" src="https://code.angularjs.org/1.4.0-rc.2/angular.min.js"></script> </head> <body> <!-- This div element 详情 »