前言 在之前的课程我们学习了Node的模块化规则,接下来我们将学习下 Node的几个新特性:global ,process进程,debug调试 global 跟在浏览器中的window一样都是全局变量,我们先来熟悉些常用的全局变量 Buffer(二进制数据处理).process.console timer(setImmediate) 看一段简单的代码: >>> 07_global.js const NUM = 1000; global.NUM = 2000; // 这里输出到全局 mod…
前言 前面已经学习了很多跟Node相关的知识,譬如开发环境.CommonJs,那么从现在开始要正式学习node的基本模块了,开始node编程之旅了. path path 模块提供用于处理文件路径和目录路径的实用工具. 它可以使用以下方式访问: const path = require('path'); [path.normalize(path)] path.normalize() 方法规范化给定的 path,解析 '..' 和 '.' 片段. 11_path_normalize.js const…
前言 一直想好好学习node.js都是半途而废的状态,这次沉下心来,想好好的学习下node.js.打算写一个系列的文章大概10几篇文章,会一直以实际案例作为贯穿的学习. 什么是node Node.js是一个JavaScript运行平台,其显著特征是它的异步和事件驱动机制,以及小巧精悍的标准库.Node目前有两个活跃版本:长期支持版(LTS)和当前版,由Node.js基金会进行管理并提供支持.这个行业联盟遵循开放式治理模型,如果想了解更多与Node管理相关的信息,可以查阅其官网上的文档. 自200…
前言 上一节让我们对Node.js有一个初步的了解,那么现在可以开始正式学习下Node.js的开发了,但是任何一门语言要设计到开发,就必须先学习开发环境以及调试.本文将主要讲解这些内容. 本文涉及到的代码全部可在github地址找到>>>node 代码 安装 点击查看>>>node 中文官网地址 [版本选择] 看图发现包含两种版本:长期支持的稳定版本 以及 当前发布版(包含很多最新的特性) 安装的过程就省略了... 开发环境 那么我们如果想要开发一个node程序,需要什…
前言 想开始编写Node.js代码,那么我们就必须先熟悉它的模块化规范CommonJS,本文将详细讲解CommonJS规范 本文代码 >>> github 地址 CommonJS Node 应用由模块组成,采用 CommonJS 模块规范. 每个文件就是一个模块,有自己的作用域.在一个文件里面定义的变量.函数.类,都是私有的,对其他文件不可见. [特点] 所有代码都运行在模块作用域,不会污染全局作用域. 模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载…
安装搭建项目的开发环境 视频地址:https://www.cctalk.com/v/15114357764004 文章 Koa 起手 - 环境准备 由于 koa2 已经开始使用 async/await 等新语法,所以请保证 node 环境在 7.6 版本以上. 安装node.js 直接安装 node.js :node.js官网地址 https://nodejs.org nvm管理多版本 node.js :可以用nvm 进行node版本进行管理 Mac 系统安装 nvm https://githu…
1.Web 与 Node.js 相关技术介绍 1.1.Web应用的基本组件 web应用的三大部分 brower(GUI)<==>webserver(business logic.data access)<==>database(data storage) GUI(浏览器.HTTP客户端) Web服务器(Node.js service) 请求(浏览器访问网页时发送一个请求给服务器) 业务逻辑(服务器进行处理请求) 连接数据库(处理的过程中需要连接数据库,进行数据处理,最后将数据返回给…
流是Nodejs的高级应用,掌握流的使用,才能真正胜任NodeJS开发. Nodejs中,流是基于事件的API,用于管理和处理数据,而且效率很好! 什么是流? 流是一个抽象接口,Node 中有很多对象实现了这个接口. 例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)等. 流的四种类型 dable - 可读操作. Writable - 可写操作. Duplex - 可读可写操作. Transform - 操作被写入数据,然后读出结果. 流的…
Node.js 实战 & 最佳 Express 项目架构 Express Koa refs https://github.com/xgqfrms/learn-node.js-by-practice xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!…
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404),或服务器内部发生了错误(500),站点会展示出某个特定的页面,比如: 那么如何在 Koa 中实现这种功能呢?其实,一个简单的中间件即可实现,我们把它称为 http-error.实现过程并不复杂,拆分为三步来看: 第一步:确认需求 第二步:整理思路 第三步:代码实现 确认需求 打造一个事物前,需要先确…
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923883523 log 日志中间件 最困难的事情就是认识自己. 在一个真实的项目中,开发只是整个投入的一小部分,版本迭代和后期维护占了极其重要的部分.项目上线运转起来之后,我们如何知道项目运转的状态呢?如何发现线上存在的问题,如何及时进行补救呢?记录日志就是解决困扰的关键方案.正如我们每天写日记一样,不仅能够记录项目每天都做了什么,便于日后回顾,也可以将做错的事情记录下来,进行自我反省.完善的日志记录不仅能…
视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并使用 安装 koa-static: npm i koa-static -S 修改 app.js,增加并指定 /public 目录为静态资源目录. const Koa = require('koa') const path = require('path') const bodyParser = re…
2011年阿里就已经开始在生产环境中使用nodejs. 阿里的技术栈中,Java是最核心的,Nodejs扮演怎样的一个角色? 1. 基础设施大部分采用Java实现,变化较少,有事务要求的Business Services通常使用Java. 2.而Node.js则替代过去PHP/Java Web的场景,用在需要快速迭代,需求变化非常快的用户侧. 3.很多内部的工程化支撑系统也逐渐基于Nodel.js了. 一.nodejs是什么 nodejs是采用google chrome浏览器v8引擎,由c++编…
经过前面的Node.js实战(一)之概述 想必你应该对Node.js的概念.应用场景.优缺点等有个大致的了解,同时你本地Windows或者Linux上已经准备好了Node.js环境. 下面我们来进入每种编程语言必经之关“HelloWorld”,不要小看这个HelloWorld,每学一样新的东西,HelloWorld是必须的,因为能给有接下来学习的勇气. 这里以Linux为例,第一个HelloWorld例子 console.log('hello world') 结果如下: 还可以将其编辑为一个he…
视频地址:https://www.cctalk.com/v/15114923886141 JSON 数据 我颠倒了整个世界,只为摆正你的倒影. 前面的文章中,我们已经完成了项目中常见的问题,比如 路由请求.结构分层.视图渲染.静态资源等. 那么,JSON 呢?JSON 格式数据的传输,已经深入到了我们的码里行间,脱离了 JSON 的人想必是痛苦的.那么,复合吧! 如何设置 JSON 格式 伟大的武术家--李小龙先生--说过这样一段话: Empty your mind, Be formless,s…
视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据最终都会展示在视图中,这时候就需要用到『模板引擎』. 什么是模板引擎? 模板引擎是为了使用户界面与业务数据分离而产生的,可以生成特定格式的文档.例如,用于网站的模板引擎会生成一个标准的 HTML 文档. 市面上常见的模板引擎很多,例如:Smarty.Jade.Ejs.Nunjucks 等,可以根据个…
视频地址:https://www.cctalk.com/v/15114923889408 文章 在前面几节中,我们已经实现了项目中的几个常见操作:启动服务器.路由中间件.Get 和 Post 形式的请求处理等.现在你已经迈出了走向成功的第一步. 目前,整个示例中所有的代码都写在 app.js 中.然而在业务代码持续增大,场景更加复杂的情况下,这种做法无论是对后期维护还是对患有强迫症的同学来说都不是好事.所以我们现在要做的就是:『分梨』. 分离 router 路由部分的代码可以分离成一个独立的文件…
任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这篇文章中,我们通过创建一个 Node.js + MongoDB 项目,来教大家如何使用 flow.ci 8 步完成自动化持续集成的搭建. 了解 flow.ci flow.ci 是融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码.编译.测试之外,还可以集成常用的工具.灵活自定义流程.1 分钟即可完成开发测试环境搭建,开启第…
在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应的这种同步模式.取而代之的是我们通过调度算法,让这些耗时的任务之后再执行,也就是采用异步的模式.我们需要将一条消息封装成一个任务,并且将它添加到任务队列里面.后台会运行多个工作进程(worker process),通过调度算法,将队列里的任…
原文地址:Node JS后端项目开发与生产环境总结 Node JS常用后端框架有express.koa.sails.国产框架有个egg js,已经在cnode投入生产了,还有个think js,类似think php,在此支持一波.每个框架在开发环境与生产环境都有所不同,这里以koa为例 开发环境与生产环境的区别 建立在后台模板渲染(ejs, pug)的基础上.前后分离架构请参考webpack热更新实现 开发环境 热更新 错误处理 前端js代码自动打包 生产环境 静态缓存(static cach…
Node.js插件(addons) Node.js 插件是用 C++ 编写的动态链接共享对象,可以使用 require() 函数加载到 Node.js 中,且像普通的 Node.js 模块一样被使用. 它们主要用于为运行在 Node.js 中的 JavaScript 与 C/C++ 库之间提供接口. 基础文档:http://nodejs.cn/api/addons.html 进阶文档:https://nodeaddons.com/ node-gyp Node.js 插件构建工具. 文档地址:ht…
Ref: 前后端分离的思考与实践(五篇软文) 其实就是在吹淘宝自己的Midway-ModelProxy架构. 第一篇 起因 为了提升开发效率,前后端分离的需求越来越被重视, 同一份数据接口,我们可以定制开发多个版本. (1) 后端 - 业务/数据接口, (2) 前端 - 展现/交互逻辑, 措施 探索一套基于 Node.js 的前后端分离方案,过程中有一些不断变化的认识以及思考,记录在这里. 一.什么是前后端分离? 一个基准例子 每个人对前后端分离的理解不一样, 前后端分离的例子就是SPA(Sin…
前言 最近学习了一下node.js相关的内容,在这里初步做个小总结,说实话关于本篇博客的相关内容,自己很久之前就已经有过学习,但是你懂的,“好记性不如烂笔筒”,学过的东西不做笔记的话,很容易就会忘记的一干二净,往往的结果就是自己又要重头开始学习,这是一个非常痛苦的过程.没有办法,为了重新捡起自己曾经学过的内容,决定写下这篇博客来回顾自己所学的知识. 本章目标 Node.js后端 学会使用node.js操作MySQL实现简单的增删查改 学会使用RESTful风格定义接口 前端 学会使用vue2整合…
1.认识 Node.js 诞生.发展.应用现状.生态圈等方面 1.1. 2008年 RyanDahl的目标是创建一个易扩展.适用于现代Web应用通信的服务器平台 1.2.国内外的应用情况 LinkedIn移动版From ROR to Node.js,base on Joyent Paypal From Java to Node.js Twitter的队列:收集需要保存从Tweets,传给负责写入的进程 知乎的推送 网易 阿里 各种创业团队 1.3.主要应用领域 RESTFul API 实时通信:…
你也许在猜专业的Node开发如何创建一个新项目. 有Npm在 ,这会非常简单. 虽然你可以创建一个JS文件,并执行:node file.js,但我建议你使用npm init来先创建一个node项目,这会是非常好的习惯. cmd下执行: npm init 即可创建一个Node项目.这时会产生一个package.json文件.这是node的清单文件, package.json里面,会包含该项目的基本信息,以及项目所需要的三方模块信息. 这个文件是很有用的,当将来此项目要在别的机器上使用时,依赖它可以…
Koa 基本介绍 Koa是Node.js中非常出名的一款WEB框架,其特点是短小精悍性能强. 它由Express原版人马打造,同时也是Egg框架的设计蓝图,可以说Koa框架的学习性价比是非常高的. 官方文档 项目搭建 我们先初始化一个项目: $ npm init TypeScript可以让项目更加容易维护,所以安装TypeScript是不可或缺的一部分: $ npm install typescript ts-node @types/node peer dependencies yourself…
转载:http://JavaScript.ruanyifeng.com/nodejs/express.html#toc0 感觉很牛的样子,不过觉得对初学者没太大用,里面很多例子用的api都没有详细的说明.为了学习备份,所以拷贝过来. Express框架 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 概述 运行原理 底层:http模块 对http模块的再包装 什么是中间件 use方法 Express的方法 all方法和HTTP动词方法 set方法 response…
回想我写的node.js和MongoDB的博客,都是菜鸟教程那里的知识,所以我打算不写了,那些都是基础,在项目开发中,我发现单单有那些基础不行,这些基础可以尽快学好,然后学习项目开发过程 下面是两个教程的链接: https://www.runoob.com/nodejs/nodejs-tutorial.html                    node.js教程 https://www.runoob.com/mongodb/mongodb-tutorial.html            …