nodejs
文章平均质量分 90
Jafeney
成功的道路并不拥挤,因为坚持的人不会太多
展开
-
nodejs学习笔记一:什么是事件驱动编程风格
这年头nodeJS真是如日中天啊,学前端的要是不知道nodeJS,都不好意思说自己和懂点代码的美工有啥区别,谈到nodeJS就不得不先聊聊它的事件驱动编程风格。究竟什么是事件驱动编程风格呢?在传统编程中,i/o操作和本地函数调用的处理方式相同:处理过程需要一直等待直到某个操作结束才能继续下去,这种基于i/o操作的阻塞式编程模型继承自早期的分时系统,在这类系统中,每一个进程都对应着一个用户,这样做的目原创 2015-09-30 23:04:39 · 3374 阅读 · 0 评论 -
【探究】NoSQL数据库学习(一)
写在前面还记得若干年前LAMP很火,Linux+Apache+MySQL+PHP这可谓是中小型网站建站的黄金之选。如今峰回路转,大前端时代nodeJS的到来,使得 MEAN(MongoDB+Express+Angular+NodeJS)成为另一个快速建站和大并发优化的不错之选。什么是NoSQLNoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系原创 2016-01-07 14:39:17 · 913 阅读 · 0 评论 -
【实践】express搭建nodeJS中间层(二)
写在前面上一篇写到用express搭建本地环境而且成功实现了路由和模板渲染,这一篇具体讲讲如何把一个原本用artTemplate渲染的前端页面用nodeJS渲染并返回给浏览器。改造过程 上一篇已经在express里配置好了artTemplate模板引擎,所以这里的改造变得无比简单。删除不需要的依赖项之前在 <head></head>里引入的artTemplate类库存在的目的是在客户端用Jav原创 2015-12-22 18:05:33 · 4733 阅读 · 1 评论 -
【重拾】深入理解express框架
写在前面Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。Express 框架核心特性:可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML页面。今天不介绍基本用原创 2015-12-31 16:30:58 · 4953 阅读 · 1 评论 -
【实践】express搭建nodeJS中间层(三)
写在前面之前2篇已经比较详细地介绍用express搭建nodeJS中间层并部署到centOS服务器,用forever管理nodeJS进程,这一系列工作 都是基于 项目已经调试 完毕了。但实际开发过程中会发现 每次修改完 代码后 都需要关闭node进程然后 重启才能生效,特别麻烦,这篇就介绍一个 自动监听并同步的的 node工具——supervisor。全局安装 supervisor直接用npm安装既原创 2015-12-25 17:37:36 · 3228 阅读 · 1 评论 -
【实践】nodeJS写个简单的爬虫程序
写在前面经常说SEO却从来没有写过爬虫,今天很有幸看到了关于nodeJS的爬虫程序的实现,模仿着写了个demo,权当砖头抛给大家了。程序架构因为是基于nodeJS,我们所需准备的架构很简单,用express4.x生成一个项目,然后再安装request和cheerio模块就可以。项目的package.json是这样的:{ "name": "spider", "version": "0.0.0"原创 2015-12-27 13:47:17 · 1245 阅读 · 0 评论 -
【实践】ArtTemplate helper函数的使用
写在前面”Art虐我千百遍,而待她如初恋“,前端模板引擎很多,机缘巧合之下结识了这位美丽的Art,于是对她情有独钟,纵使开源社区薄弱,API文档稀缺,还是坚韧不拔地去 使用她。和她相处的几个月里 遇到的坑,趟过的枪实在是不计其数,但是没关系,既然选择了她,那就要一心一意,去克服困难,一起成长不是吗?nodeJS中使用最初结识它是在 WebApp开发的时候,那时还不太会nodeJS,Art也仅仅是用在原创 2016-01-11 17:22:35 · 11817 阅读 · 1 评论 -
深入理解express的中间件
写在前面前面的文章里也介绍过了,Express 是一个简洁、灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。Express项目的底层由许多的中间件在协同工作,可以这么说,一个 Express 应用就是在调用各种中间件。什么是中间件中间件是一个可访问请求对象(req)和响应对象(res)的函数,在 Express 应用的请求-响应循环里,原创 2016-01-14 15:44:20 · 12677 阅读 · 1 评论 -
[重拾]深入理解gulp自动化
写在前面gulp使用了有一段时间,公司好几个项目自动化就是用它构建的。不过对这个简单粗暴的工具我常常是又爱又怕。啥意思呢?大牛们写的gulp任务我看得懂,也能依样画葫芦运用到自己的项目,但是如果撇开doc,让我自己写我还真写不好。纸上得来终觉浅啊,考验对一门技术的掌握程度,光看得懂、会套用还是停留在浅层,在理解的基础上自己能写出漂亮又高效的代码那才是真正掌握了。详解gulp的API要运行gulp任务原创 2016-03-06 20:22:00 · 2088 阅读 · 1 评论 -
基于Redux架构的单页应用开发总结(二)
写在前面 这次重点介绍基于Redux架构的单页应用代码的组织方式关于less的组织作为一个后端出身的前端工程师,写简单的css实在没有那种代码可配置和结构化的快感。所以引入less是个不错的选择,无论是针对代码后期的管理,还是提高代码的复用能力。global.less这个是全局都可以调用的方法库,我习惯把 项目的配色、各种字号、用于引入混出的方法等写在这里,其他container页面通过@im原创 2016-06-11 00:14:17 · 8325 阅读 · 0 评论 -
JavaScript异步编程的终极演变
写在前面有一个有趣的问题: 为什么Node.js约定回调函数的第一个参数必须是错误对象err(如果没有错误,该参数就是null)? 原因是执行回调函数对应的异步操作,它的执行分成两段,这两段之间抛出的错误程序无法捕获,所以只能作为参数传入第二段。大家知道,JavaScript只有一个线程,如果没有异步编辑,复杂的程序基本没法使用。在ES6诞生以前,异步编程的方式大概有下面四种:回调函数事件原创 2016-08-16 09:13:14 · 2433 阅读 · 3 评论 -
基于Node的React图片上传组件实现
写在前面红旗不倒,誓把JavaScript进行到底!今天介绍我的开源项目 Royal 里的图片上传组件的前后端实现原理(React + Node),花了一些时间,希望对你有所帮助。前端实现遵循React 组件化的思想,我把图片上传做成了一个独立的组件(没有其他依赖),直接import即可。import React, { Component } from 'react'import Upload f原创 2016-08-11 10:38:38 · 8490 阅读 · 5 评论 -
【探究】NoSQL数据库学习(二)
写在前面之前一篇简单介绍了NoSQL数据库mongoDB的基本语法,暂且不深入研究它高级的用法,这一节具体谈谈nodeJS里如何快速操作mongoDB数据库,也好快速上手。mongoose介绍基本概念Schema —— 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model —— 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entity —— 由Mo原创 2016-01-08 11:43:20 · 715 阅读 · 0 评论 -
【实践】express搭建nodeJS中间层(一)
写在前面好了,准备了一周的理论知识和开发方案,nodeJS中间层搭建项目从今天就开始了。作为项目的负责人和初次尝试者,我会把开发的过程中用到的技术、碰到的壁一个个用文章记录下来。express框架介绍express框架是nodeJS出来不久就诞生的webServer构建框架,目前的版本是 4.x。项目时间紧迫,这次就不从零开始搞了,站在巨人的肩膀上解决问题,可以帮我们节省些底层工作。 @ exp原创 2015-12-21 14:39:30 · 10733 阅读 · 1 评论 -
nodejs学习笔记二:闭包和异步编程
闭包到底是什么鬼闭包就是函数��,但是它可以继承并访问它自身被声明的那个作用域里的变量。当你将一个回调函数作为参数传递给另外一个进行i/o操作的函数时,回调函数稍后会被调用,神奇的是,在被调用时,回调函数会记住它自身声明时所在的上下文,并且可以访问该上下文及其父上下文里的所有变量,这个强大的特性就是Node成功的核心。举个简单的jquery例子: (function(){ va原创 2015-09-30 23:11:59 · 2640 阅读 · 0 评论 -
前端自动化:谈谈grunt和gulp的区别
自nodeJS登上前端舞台,自动化构建变得越来越流行。目前最流行的当属grunt和gulp,这两个光看名字挺像,功能也差不多,不过gulp能在grunt这位大哥如日中天的境况下开辟出自己的一片天地,有着她独到的优点。 易用 Gulp相比Grunt更简洁,而且遵循代码优于配置策略,维护Gulp更像是写代码。 高效 Gulp相比Grunt更有设计感,核心设计基于Unix流的概念,通过管道连原创 2015-09-30 23:16:22 · 22848 阅读 · 0 评论 -
【重拾】nodeJS路由
写在前面在nodeJS的http请求里,我们需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.JS模块,它们分别是url和querystring模块。一段代码 url.parse(string).query原创 2015-12-15 10:46:47 · 597 阅读 · 0 评论 -
【探索】NodeJS中间层搭建——楔子
前言最近碰了个壁,公司开发的一个新项目里我大胆地提出要前后端完全分离,用JavaScript模板引擎、ajax、路由等技术替代繁琐的前后端混合的业务逻辑,项目进行到一半前辈提出来仅仅靠前端的力量无法满足公司对SEO的要求。是放弃之前的工作重新改用后端velocity模板引擎来渲染页面,把工作重心转交给Java后端,还是坚持走全后端分离路线但是另辟一条蹊径呢? 最后又来了个大胆的决定——用nodeJS原创 2015-12-14 14:20:39 · 27824 阅读 · 2 评论 -
【学习】nodeJS工具模块——util
写在前面util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足。util.inheritsutil.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数。 JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有 提供对象继承的语言级别原创 2015-12-15 11:11:37 · 534 阅读 · 0 评论 -
【重拾】nodeJS模块查找
写在前面为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。服务端的模块放在哪里就拿 http模块说起吧。看代码:var http = require("http");..原创 2015-12-15 10:34:42 · 1158 阅读 · 0 评论 -
【重拾】nodeJS 管道流
写在前面再一次过了一遍nodeJS的基础,大概是之前的水平不够,没有很好地理解“流”的概念,今天便好好认识一番吧。先认识什么是”流“Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。Node.js,Stream 有四种流类型:Readable - 可读操作。Writabl原创 2015-12-15 10:22:34 · 5386 阅读 · 1 评论 -
【技巧】断点调试你的express项目
写在前面前端工程师接触最多的是JavaScript,JavaScript程序可以通过浏览器进行调试,比如chrome的调试工具、Firefox的FireBug等。现在大前端趋势下前端工程师开始接触NodeJS这个JavaScript的孪生兄弟,俗话说殊途同归,NodeJS当然也可以通过chrome的调试工具进行断点调试。这篇文章着重介绍一下这个技术。node-inspector全局安装node-in原创 2016-01-16 15:05:23 · 10709 阅读 · 2 评论 -
【学习】CommonJS规范和实现
写在前面 一言以蔽:CommonJS是服务器端模块的规范,Node.js采用了这个规范。commonJS简介根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。举个例子 example.jsconsole.log("evaluating example.js");var invisible =原创 2015-12-30 17:35:05 · 3734 阅读 · 0 评论 -
【学习】tmodJS——前端模板预编译技术
什么是前端模板预编译前端模板预编译通过预编译技术让前端模板突破浏览器限制,实现后端模板一样的同步“文件”加载能力。它采用目录来组织维护前端模板,从而让前端模板实现工程化管理,最终保证前端模板在复杂单页 web 应用下的可维护性。同时预编译输出的代码经过多层优化,能够在最大程度节省客户端资源消耗。按文件与目录组织模板template('tpl/home/main', data)模板支持引入子模板{{i原创 2015-12-20 14:35:40 · 6495 阅读 · 1 评论 -
Node爬坑记——伪造cookie
写在前面在没有引入NodeJS层之前,客户端和服务端之前的数据传输可以用Ajax来完成,而且服务端可以直接读取客户端请求头携带的cookie,这个直接走 HTTP 协议,没有任何问题。但是当引入了一个NodeJS作为中间层,通过中间层调用服务层(比如Java的数据接口层)的接口时,你会发现 直接走http协议,Java层根本无法读取到 原本从客户端发送过来的cookie。这个时候 就需要在中间原创 2016-01-21 23:31:28 · 4684 阅读 · 3 评论 -
轮子篇:基于Node和React的全栈式架构
写在前面花几天时间做了个小东西,不得不提,麻雀虽小,但五脏俱全,充分体现出一个全栈工程师在小项目上高效的产出能力 (^-^)。简单介绍下:架构适宜如果你是一个前端开发工程师,并且懂一点Node和数据库。有一天,你的老板逼你快速开发一个移动端的商城加一个管理后台,请不要慌张,装上我的轮子跑跑看。快速搭建本打算弄个脚手架工具,但是出于教学的目的,还是一步步地告诉大家怎么搭这个全栈式的框架。用expres原创 2016-12-12 21:16:06 · 11760 阅读 · 5 评论