nodejs学习

NodeJS异步I/O解析

岁酱吖の 提交于 2019-12-28 03:53:38
在现在的项目开发中,任何一个大型项目绝对不是简简单单的采用一个种语言和一种框架,因为每种语言和框架各有优势,与其死守一个,不与取各家之所长,依次得到一个高性能、搞扩展的产品。 对于一个.NET开发者,尤其是主要从事Web开发的.NET程序员,个人觉得有必要学习一门性能优越的Web平台开发语言。一个开发者不能简简单单的只学习一门语言,思维应该开阔,从各个方面去看待同样的一个问题,这样或许会得到另一番效果和见解,个人认为应该学习一下其他的语言,这样有利于我们对比语言的优势和缺点,例如java、nodejs、python等等。对于Nodejs这个JavaScript平台,个人觉得.NET程序员有必要学习一下,因为学习NodeJS有助于我们构建一个高性能的Web平台。 NodeJS具有事件驱动、非阻塞I/O等特点,可以很好的处理I/O操作。Node面向网络且擅长并行I/O,能够有效地组织起更多的硬件资源。 这篇博客就来简单的介绍一下NodeJS的异步I/O特点。 一.NodeJS概述: 要学习一个语言或者平台,我们首先应该知道其定义,依据定义来扩展我们的学习思路。Node的定义:”一个大奖在Chrome JavaScript运行时上的平台,用于构建高速、可伸缩的网络程序。NodeJS作为一个异步事件驱动的JavaScript运行时,旨在构建可扩展的网络应用程序。

一起来学习用nodejs和CocosCreator开发网络游戏吧(六)--- 可操纵的游戏角色(下)

五迷三道 提交于 2019-12-26 17:55:26
其实用了很长时间思考了一下一些数据运算方面放在哪里合适。当然,数值方面的运算肯定要放在服务端是正确的,本地的数值计算就会有被修改器修改、数据传输中抓包改包等作弊、外挂的问题存在,不过对于我这个小项目目前开发阶段来说,只涉及到对游戏角色移动操控这块。 在我自己所接触过的网游中,确实存在两种方式来处理角色移动数据,一个是发出操作指令,然后服务器根据操作指令计算出移动坐标再返给客户端处理,一个是本地计算移动距离,再将数据交付给服务器。这两种情况在游戏掉线的时候就能有很明显的感觉,前者掉线后,角色就无法移动了,做出的任何操作指令都不会有反馈,后者在掉线后,依然可以操纵角色在游戏中活动。 这两种方式各有利弊,前者可以杜绝各种修改数据的外挂,但是对服务器会有很大的数据计算压力。后者无法避免一些神仙外挂,但是服务器方面计算成本就会降低很多。 因为自身做过很多年的单机游戏,想学习一下网游的开发理论知识,才决定写这一系列的博客记录学习过程,所以决定使用全服务器处理数据的方案,将包括角色移动的数据计算都放到服务器中进行。 在之前的篇章中,已经做好了摇杆,在场景中摆放了个角色。在这个基础上,接下来扩展一下服务器和客户端代码,让我们可以通过摇杆操作角色,让服务器运算角色移动后的坐标并返回客户端,在客户端中表现出人物行走。同时,也能支持多个客户端同时访问,在客户端中可以看到多个角色的移动。 在确定了方案之后

Webpack 2 视频教程 002 - NodeJS 安装与配置

限于喜欢 提交于 2019-12-24 04:43:19
原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」。 Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲解的。 这个基本就是目前国内最好的 Webpack 2.0 最好的学习视频了,希望可以对新手或者复习相关知识的朋友有用。 原文发表于我的技术博客 Webpack 是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。通过loader的转换,任何形式的资源都可以视作模块,比如 CommonJs 模块、 AMD 模块、 ES6 模块、CSS、图片、 JSON、Coffeescript、 LESS 等。 1. 视频课程简介 此节课程主要对 Webpack 2 使用到的 NodeJS 安装与配置进行了介绍,包含 NodeJS 和 NPM 包管理的讲解与演示。 2. 课程源码地址 https://github.com/ParryQiu/DevOpenClub-Tech-Webpack2 3. 视频课程地址 优酷超清视频: http://v.youku.com/v_show/id_XMjY4MzUwODcwMA==.html 如果需要 1080P 的视频

转发:几个常见的 NodeJS 误区

Deadly 提交于 2019-12-23 19:03:14
很多不熟悉 NodeJS 的开发者,总是对 NodeJS 抱有怀疑态度,其中的原因基本是对其具有误解,而这些误解往往又最终导致自己放弃 NodeJS 的学习。在这篇文章里,我将会尽可能言简意赅的介绍和解释这些误区的所在之处,并不遗余力地挽留那些正在迷茫中的人,同时增强正在使用 NodeJS 的开发者们的信心。 一、 NodeJS 是一门服务器语言 这个错误非常明显,NodeJS 是一个使用 Chrome V8 引擎运行 JavaScript 程序的运行时环境,正如 JRE (Java Runtime Environment) 是 Java 程序的运行环境一样,语言还是 JavaScript,和我们在浏览器中运行 JS 脚本没什么不同。区别在于,NodeJS 提供了一整套用于服务器编程(准确来说应该是除网页编程外)的工具包,例如处理网络连接的 net, http, https 模块,用于读写文件的 fs 模块等,以及 NPM 仓库中数十万的第三方模块。这些模块,加上 NodeJS 运行时,为 JavaScript 语言提供了跨平台、跨领域的编程能力。 除了服务器编程,NodeJS 还被广泛应用于客户端编程,如桌面软件( Electron 框架),手机软件( React-Native 框架, Apache Cordova 框架)等,当然还有现在特别火的“前端”开发,例如 React

Nodejs进阶:如何玩转子进程(child_process)

守給你的承諾、 提交于 2019-12-23 17:39:26
本文摘录自个人总结《Nodejs学习笔记》,更多章节及更新,请访问 github主页地址 。欢迎加群交流,群号 197339705 。 模块概览 在node中,child_process这个模块非常重要。掌握了它,等于在node的世界开启了一扇新的大门。熟悉shell脚本的同学,可以用它来完成很多有意思的事情,比如文件压缩、增量部署等,感兴趣的同学,看文本文后可以尝试下。 举个简单的例子: const spawn = require('child_process').spawn; const ls = spawn('ls', ['-lh', '/usr']); ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); ls.stderr.on('data', (data) => { console.log(`stderr: ${data}`); }); ls.on('close', (code) => { console.log(`child process exited with code ${code}`); }); 几种创建子进程的方式 注意事项: 下面列出来的都是异步创建子进程的方式,每一种方式都有对应的同步版本。 .exec() 、 .execFile() 、 .fork() 底层都是通过

《NodeJS开发指南》第五章微博实例开发总结

余生长醉 提交于 2019-12-21 20:51:48
所有文章搬运自我的个人主页: sheilasun.me 《NodeJS开发指南》 这本书用来NodeJS入门真是太好了,而且书的附录部分还讲到了闭包、this等JavaScript常用特性。第一遍看的时候很多地方没看明白,再看一遍的时候就清晰多了。跟着书上第五章完成了微博实例Microblog,在此总结一下开发中遇到的问题。这本书出得较早(2012年出版),因此书中的express框架部分与新的Express 4.x也有些不同,下文都将会提到,并给出新的写法。 Microblog是一个出于学习目的设计的简单微博系统,核心功能是发表信息,其他功能包括用户的注册及登入登出等。 安装 着手开发之前先搭建一下环境吧! 安装 NodeJS 去 NodeJS官网下载页面 上根据自己的操作系统下载对应的安装包并安装之后,我们就有了NodeJS和npm环境。npm是Node的包管理工具,会在安装NodeJS时一并安装。可以用以下命令查看版本号验证我们的安装成功与否: sunjingdeMacBook-Pro:microblog sunjing$ node -v v0.12.2 sunjingdeMacBook-Pro:microblog sunjing$ npm -v 2.7.4 安装 express-generator 我们使用express作为开发框架,与书上不同的是

node异步转同步,KO 恶魔金字塔

前提是你 提交于 2019-12-20 14:51:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 Nodejs框架类库很多,功能相近的框架,本来只打算学一种写一种。之前写过流程控制框架 windjs文章 ,本来是想着要支持一下“国人框架”。无奈啊,作者竟然放弃了维护,国人真的不靠谱啊! “流程控制”本来是件比较简单的事,但是由于Nodejs的异步架构的实现方法,对于需要同步的业务逻辑,实现起来就比较麻烦。嵌套3-4层,代码就会变得的支离破碎了! 今天就遇到了一个业务逻辑,连续对数据库操作,前后有依赖。让我们看看Async是如何解决问题的。 不用不知道,一用真强大!! 目录 Async介绍 Async安装 Async函数介绍 async_demo使用介绍 场景:对数据库的连续操作 async_demo我的分支 1. Async介绍 Async是一个流程控制工具包,提供了直接而强大的异步功能。基于Javascript为Node.js设计,同时也可以直接在浏览器中使用。 Async提供了大约20个函数,包括常用的 map, reduce, filter, forEach 等,异步流程控制模式包括,串行(series),并行(parallel),瀑布(waterfall)等。 项目地址: https://github.com/caolan/async 2. Async安装 我的系统环境 win7 64bit

前后端分离后的前端时代,前端技术要会做哪些事?

牧云@^-^@ 提交于 2019-12-20 08:57:28
1,什么是前后端分离 1,什么是前后端分离,要区分前端和后端,需要有个明确的界限。一般,用户可以直接看到的东西,都是属于前端的范畴,除了前端之外都属于后端了。 2,在传统的像ASP,JSP和PHP等开发模式中,前端是处在一个混沌的状态中,可以说是没有独立的“人格”可言。 3,前端负责切图和编写静态页面模板,后端将数据渲染到前端提供的页面模板中,最后将页面渲染到浏览器展示。 这个过程中,前端只提供页面模板或者写一些JavaScript脚本,有的甚至JS脚本都是后端来写,前端的作用只局限于切图和样式模板文件,这种角色就是传说中的“切图仔”。 这也是为什么行业内都觉得前端是一个很简单的工作,只要花个一周,学下HTML、CSS和PS的简单技巧就可以胜任的工作。 现在看来,那时候的前端就是一个打酱油的,发展前景很有限。那时候的JavaScript脚本也比较简单,一个jQuery就可以横扫天下,所以对于精通语言类代码的后端程序员来说,可以很快的上手JavaScript,对前端来说,发展空间就更小了。 2,前后端分离,不只是简单的代码的分离。 首先是要架构上分离解耦,逐渐摆脱前后端在架构上的依赖,前后端各司其职,分开部署在不同的服务器上,通过RESTful接口传递数据。减轻后端服务器的压力,后端服务器不再负责页面渲染,只负责输入数据,吞吐量提升了好几倍。 其次是逻辑分离,不分离的时候

nodeJS学习(7)--- WS开发 NodeJS 项目-节2 <安装&设置&启动 mongodb 数据库++遇到的问题>

懵懂的女人 提交于 2019-12-18 12:45:58
转载: http://www.cnblogs.com/zhongweiv/p/node_mongodb.html 目录 简介 MongoDB安装(windows) MongoDB基本语法和操作入门(mongo.exe客户端操作) 库操作 插入 查询 修改 删除 存储过程 nodejs操作MongoDB 插入 查询 修改 删除 调用存储过程 写在之后... 简介: MongoDB   开源,高性能的NoSQL数据库;支持索引、集群、复制和故障转移、各种语言的驱动程序;高伸缩性;   NoSQL毕竟还处于发展阶段,也有说它的各种问题的: http://coolshell.cn/articles/5826.html   官网地址: http://www.mongodb.org/   API Docs: http://docs.mongodb.org/manual/   node-mongodb-native   mongodb的nodejs驱动;   GitHub地址: https://github.com/mongodb/node-mongodb-native MongoDB安装(windows) : 参考前文 nodeJS学习(7)--- WS开发 NodeJS 项目-节2 <安装&设置&启动 mongodb 数据库++遇到的问题> MongoDB基本语法和操作入门(mongo

nodejs非关系型数据库mongodb

情到浓时终转凉″ 提交于 2019-12-16 01:59:01
数据库 为什么要学习Node.js 理解为: Node.js是对js的一个扩展 Node.js是前端框架的底层 什么是数据库? 存储数据的一个仓库 数据库分类?和它的代表 关系型数据库 【 SQL 】 代表: mysql 非关系型数据库【 NOSQL 】 代表: Mongodb 如何区分一个数据库属于哪一个类别 经验: 有没有表, 有,那就是SQL , 没有,那就是NoSql 数据库构成 关系型数据库 数据库 -> 表 -> 行 非关系型数据库 数据库 -> 集合 -> 文档 总结: 数据库功能是用来存储数据的。 数据库分为关系系数据库和非关系型数据库(nosql) 关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文档。 非关系型数据库文件存储格式为BSON(一种JSON的扩展)。 MongoDB 概念 基于分布式文件存储的数据库 分布式: git 存储类型: BSON 什么是bson? bson是json的超集, bson拥有json的所有,但是它有json没有的二进制类型 安装 MongoDB官网地址: https://www.mongodb.com/ MongoDB下载地址: https://www.mongodb.com/download-center#community MongoDB for Windows 64-bit 适合 64