
nodejs
文章平均质量分 94
记录nodejs相关知识
赶路人儿
一个十年以上编程人员,擅长使用java、python、C++等语言,具有广告投放、个性化推荐引擎等超大规模系统开发经验。
展开
-
JavaScript 运行机制详解:再谈Event Loop
一年前,我写了一篇《什么是 Event Loop?》,谈了我对Event Loop的理解。上个月,我偶然看到了Philip Roberts的演讲《Help, I'm stuck in an event-loop》。这才尴尬地发现,自己的理解是错的。我决定重写这个题目,详细、完整、正确地描述JavaScript引擎的内部运行机制。下面就是我的重写。进入正文之前,插播一条消息。我的新书《ECMAScript 6入门》出版了(版权页,内页1,内页2),铜版纸全彩印刷,非常精美,还附有索引(当然价格也比同类转载 2021-10-18 10:39:20 · 189 阅读 · 0 评论 -
npm generate-schema库去掉默认的required
最近一段时间在使用json-schema对接口响应的json数据做校验。找到了一个开源的项目 json-schema-editor-virual。github连接:https://github.com/YMFE/json-schema-editor-visual 在线demo:https://hellosean1025.github.io/json-schema-visual-editor/项目中可以将原始json数据,一键生成schema,通过源码发现这一功能是通过generate-schema原创 2020-09-08 11:40:02 · 879 阅读 · 0 评论 -
win7环境webpack打包NODE_ENV不是内部或外部命令错误解决
package.json内容如下:{ "name": "json-schema-editor-visual", "version": "1.1.1", "description": "jsonschema editor", "main": "package/index.js", "license": "MIC", "scripts": { "start": "ykit s -p 8082", "demo": "NODE_ENV=production ykit p原创 2020-06-16 15:43:07 · 613 阅读 · 0 评论 -
webpack入门
一、什么是webpack?从上图中可以看到,webpack可以做如下的事情打包所有的脚本 打包所有的图片 打包所有的样式一句话:打包所有的资源。1、webpack安装:webpack是基于Node的, 在安装Webpack之前需要安装Node环境。nodejs的安装链接:https://blog.csdn.net/liuxiao723846/article/details/48519593注:在这里安利一个node版本管理插件nvm, 可以实现本地多个node 版本自由转换。...转载 2020-06-13 19:46:13 · 300 阅读 · 0 评论 -
现代 JavaScript 开发
有时候入门没入好,学习起现代的 JavaScript 开发还是颇有难度的。生态系统太日新月异以至于让人难以理解不同工具的出现究竟是为了解决什么问题。我从 1988 年开始编程,但直至 2014 年才开始认真地学习起 JavaScript。记得那时第一次遇到Browserify时看着它的标语:Browserify lets you require('modules') in the browser by bundling up all of your dependencies.这句话里的单词我一个..转载 2020-06-13 17:18:02 · 1171 阅读 · 0 评论 -
react项目打包编译
最近有个项目需要用到react做一个前端界面,在网上搜索了一些关于react相关的知识,感觉比较多、而且零散。我虽然是一个后端开发工程师,但之前接触过一些界面开发,比如:jsp、ajax、html、css的还是了解一些,但是遇到这个react,感觉有点懵比。写法上和之前的完全不同,而且看了一写示例后发现,现在的前端开发和后端有点类似了,需要编译、打包...好了,废话不多说,进入今天的正题。我在github上找到一个项目https://github.com/ltadpoles/react-admin通过.原创 2020-06-12 21:22:37 · 8114 阅读 · 0 评论 -
json-schema-editor-visual安装
环境:centosrelease 6.8,Python 2.6.61、下载、安装nodejs:在nodejs网站下载对应的二进制版本,https://nodejs.org/en/download/releases/cd /usr/localwget https://nodejs.org/download/release/v12.9.0/node-v12.9.0-linux-x64.tar.gztar -xvzf node-v12.9.0-linux-x64.tar.gz#配置环境变量.原创 2020-06-11 14:03:59 · 2126 阅读 · 0 评论 -
mermaid工具
mermaid是一款开源的画流程图、甘特图、时序图工具,她提供了一种类似markdown的语法来创建各种图。官网:https://mermaidjs.github.io/在线编辑器:here1、入门我们先试用mermaid提供的在线编辑器,来熟悉一下mermaid的各种画图语法;1)流程图2)时序图:sequenceDiagramA->> B: Qu...原创 2018-10-30 17:04:54 · 50512 阅读 · 9 评论 -
linux(centOS)下安装nodejs
1、下载nodejs的安装包:wget http://nodejs.org/dist/v0.10.17/node-v0.10.17.tar.gz2、解压、安装:tar xvzf node-v0.10.17.tar.gzcd node-v0.10.17执行./configure出现错误提示:Exception: Call to '(echo | $(echo原创 2015-09-17 11:34:07 · 1157 阅读 · 0 评论 -
nodejs之socket.io模块——实现了websocket协议
Nodejs实现websocket的4种方式:socket.io、WebSocket-Node、faye-websocket-node、node-websocket-server,这里主要使用的是socket.io1、服务端:1)首先安装socket.io npm install socket.io2)server.jsvar app = require('http').c原创 2015-08-07 16:58:09 · 4577 阅读 · 0 评论 -
html5开发利器——sublimetext2+emmet插件
1、下载sublimetext2,地址:点击打开链接2、sublimetext是一文本编辑器,通过插件可以编程一个万能的IED。所以,为了管理插件,最好先安装一个package control插件。官网 安装方法有两种:方法一,在线安装,ctrl+` 打开控制台,然后输入一下脚本+回车,完成后重启即可(需要翻墙)import urllib2,os,hashlib; h = 'e原创 2015-08-07 14:32:20 · 2335 阅读 · 0 评论 -
nodejs之supervisor模块——提高nodejs调试效率
在开发nodejs程序,调试的时候,无论你修改了代码的哪一部分,都需要重启服务才能生效。这是因为Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。supervisor 可以帮助你实现这个功能,它会监视你对原创 2015-08-07 10:49:05 · 1180 阅读 · 0 评论 -
websocke前世今生
我们知道http协议是一种单向的网络协议,在建立连接后,它只允许Browser/UA(UserAgent)向WebServer发出请求资源后,WebServer才能返回相应的数据。原创 2015-07-17 10:56:41 · 1359 阅读 · 0 评论 -
nodejs之generic-pool数据库连接池(mysql)
引言做后端开发免不了要和一些 存储服务器, 消息服务器 等等 打交道。起因 (传统模式, 读取数据库)大家都知道和这些使用 tcp连接 的服务传递数据的都必须要打开 一个 连接-connection例如我们打开一个数据库并执行一段 sql, 通常都是connection = open "mysql://127.0.0.1:3306/db" (打开数据转载 2015-07-01 18:36:48 · 4961 阅读 · 3 评论 -
nodejs解决mysql和连接池(pool)自动断开问题
最近在做一个个人项目,数据库尝试使用了mongodb、sqlite和mysql。分享一下关于mysql的连接池用法。项目部署于appfog,项目中我使用连接池链接数据库,本地测试一切正常。上线以后,经过几次请求两个数据接口总是报503。一直不明就里,今天经过一番排查终于顺利解决了。1.mysql 链接普通模式 var mysql = require('mysql'), env转载 2015-07-01 18:32:43 · 15951 阅读 · 4 评论 -
nodejs之mysql连接池
参考:http://www.oschina.net/code/snippet_95289_25000 github地址: https://github.com/obullxl/osnode-site1、配置config.json{ "dbhost": "localhost", "port": 3306, "user": "root", "passw原创 2015-07-01 15:24:09 · 3107 阅读 · 0 评论 -
nodejs 操作mysql数据库(最新版本)
1、把Mysql Module装到NodeJS中:$npm install Mysql2、JS脚本 mysqlTest.js// mysqlTest.js//加载mysql Modulevar Client = require(‘mysql').Client,client = new Client(),//要创建的数据库名TEST_DATABASE = ‘nodejs_mys转载 2015-07-01 11:44:24 · 2240 阅读 · 0 评论 -
nodejs之child_process子进程模块
child_process即子进程可以创建一个系统子进程并执行shell命令,在与系统层面的交互上挺有用处。NodeJS 子进程提供了与系统交互的重要接口,其主要 API 有: 标准输入、标准输出及标准错误输出的接口 child.stdin 获取标准输入 child.stdout 获取标准输出 child.stderr 获取标准错误输出 获取子进程的PID:child.pid 提供转载 2015-06-12 16:41:57 · 2859 阅读 · 0 评论 -
nodejs之connect模块
Connect模块背景 Node.js的愿望是成为一个能构建高速,可伸缩的网络应用的平台,它本身具有基于事件,异步,非阻塞,回调等特性,这在前几篇专栏中有过描述。正是基于这样的一些特性,Node.js平台上的Web框架也具有不同于其他平台的一些特性,其中Connect是众多Web框架中的佼佼者。 Connect在它的官方介绍中,它是Node的一个中间件转载 2015-06-12 15:28:13 · 1467 阅读 · 0 评论 -
nodejs模块加载机制
1、模块的类型:Node.js 的模块可以分为两大类,一类是核心模块,另一类是文件模块:1)核心模块就是Node.js 标准 API 中提供的模块,如 fs、http、net、vm 等,这些都是由 Node.js 官方提供的模块,编译成了二进制代码。我们可以直接通过 require 获取核心模块,例如require('fs')。核心模块拥有最高的加载优先级,换言之如果有模块与其命名冲突原创 2015-06-11 11:44:06 · 1118 阅读 · 0 评论 -
nodejs全局变量
JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。在浏览器 JavaScript 中,通常 window 是全局对象,而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global对象的属性。原创 2015-06-10 17:53:10 · 8332 阅读 · 0 评论 -
nodejs之socket.io模块
websocket是HTML5的一种新的通信协议,它是实现了浏览器与服务器的双向通讯。在 WebSocket API 中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。socket.IO是一个websocket库,包括了客户端的js和服务器端的nodejs。官方地址:http://socket.io原创 2015-06-09 17:12:59 · 2121 阅读 · 0 评论 -
Node.js之缓冲模块Buffer
前言 Javascript是为浏览器而设计的,能很好的处理unicode编码的字符串,无论是宽字节还是单字节字符串,都被认为是一个字符串。Node中需要处理网络协议、操作数据库、处理图片、文件上传等,还需要处理大量二进制数据,自带的字符串远不能满足这些要求,因此Buffer应运而生。 Buffer是一个典型的Javascript和C++结合的模块,性能相关转载 2015-06-09 15:38:19 · 1078 阅读 · 0 评论 -
nodejs(npm)——创建全局链接
我们都知道,在使用 npm 安装包的时候,有两种模式:本地模式和全局模式。它们的区别是前者将包安装到了当前目录的node_modules下,后者把包安装到了/usr/local/lib/node_modules/中;此外,全局模式安装的包并不能直接在 JavaScript 文件中用 require 获得,因为 require 不会搜索 /usr/local/lib/node_modules/。原创 2015-06-04 17:55:53 · 3869 阅读 · 0 评论 -
nodejs——require单次加载
创建模块 在 Node.js 中,创建一个模块非常简单,因为一个文件就是一个模块,我们要关注的问题仅仅在于如何在其他文件中获取这个模块。Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。让我们以一个例子来了解模块。创建一原创 2015-06-04 17:40:32 · 2015 阅读 · 0 评论 -
nodejs创建包(建立nodejs工程)
包是在模块基础上更深一步的抽象,Node.js 的包类似于 C/C++ 的函数库或者 Java/.Net的类库。它将某个独立的功能封装起来,用于发布、更新、依赖管理和版本控制。Node.js 根据 CommonJS 规范实现了包机制,开发了 npm来解决包的发布和获取需求。 Node.js 的包是一个目录,其中包含一个 JSON 格式的包说明文件 package.json。严原创 2015-06-04 17:37:48 · 2169 阅读 · 0 评论 -
nodejs exports和module.exports区别
有时候我们只是想把一个对象封装到模块中,例如://singleobject.jsfunction Hello() { var name; this.setName = function (thyName) { name = thyName; }; this.sayHello = function () { console.log('Hello ' + name); };原创 2015-06-04 17:23:42 · 784 阅读 · 0 评论 -
Node.js模块 require和 exports
1、模块:node.js通过实现CommonJS的Modules/1.0标准引入了模块(module)概念,模块是Node.js的基本组成部分.一个node.js文件就是一个模块,也就是说文件和模块是一一对应的关系.这个文件可以是JavaScript代码,JSON或者编译过的C/C++扩展.Node.js的模块分为两类,一类为原生(核心)模块,一类为文件模块。在文件模块转载 2015-06-03 17:19:28 · 1101 阅读 · 0 评论 -
CommonJS的模块规范
CommonJS对模块的定义十分简单,主要分为模块引用、模块定义和模块标识3个部分。1. 模块引用模块引用的示例代码如下:var math = require('math');在CommonJS规范中,存在require()方法,这个方法接受模块标识,以此引入一个模块的API到当前上下文中。2. 模块定义在模块中,上下文提供require()方法来引入外部模块。对应引入原创 2015-06-03 16:25:59 · 954 阅读 · 0 评论 -
nodejs自学资料
准备业余时间学习一下Node.js,也是为了能够给同学们做技术分享保持比较充足的素材。 首先找到它的官网:http://nodejs.org/ ,作为一个很牛掰的open-source项目,还是需要去它的专属技术社区好好逛一逛,如下是官网的一段英文描述:一个关注于事件驱动,解决高并发和异步I/O处理,并具有高速js解析引擎的platform。这也是很值得我们去了解和学习的。转载 2015-06-02 16:13:17 · 694 阅读 · 0 评论 -
WebStorm+Node.js开发环境的配置
WebStorm是作为JS开发IDE存在的,并且支持流行的Node.js以及JQuery等js框架。而Node.js简单说就是一个JS类库并且配备有Google的V8 js引擎来解析和执行js脚本。 那WebStorm+Node.js这样一个组合,用来开发基于Node.js平台的应用是最方便不过的了,并且可以知道WebStorm这个IDE环境对js的支持是灰常强大的,有原创 2015-06-02 15:59:25 · 5394 阅读 · 0 评论 -
nodejs 调试总结
总的来说Nodejs的应用程序主要有两部分:JavaScript编写的js模块和C语言编译的二进制模块。这里主要介绍三种avaScript模块的调试方法:基于Nodejs内建的调试器,基于V8调试插件和基于Chrome浏览器的调试器。一、基于Nodejs内建的调试Nodejs提供了一个内建调试器来帮助开发者调试应用程序。想要开启调试器我们需要在代码中加入debugger标签,当Nodejs转载 2015-06-01 18:34:13 · 1068 阅读 · 0 评论 -
用Eclipse调试Node.js代码
1、在eclipse上安装v8插件: 1)Help>Install New Software ,在弹出的界面上点击Add,然后输入name和location两个信息,如下图:Name:随便取一个;location:http://chromedevtools.googlecode.com/svn/update/dev/注:安装的时候需要使用vpn,因为这里的地址是请求到了go原创 2015-06-01 18:24:17 · 2845 阅读 · 0 评论 -
nodejs介绍
Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速,可扩展的网络应用程序的平台。Node.js使用事件驱动,非阻塞I/O模型,轻量、高效,可以完美地处理时时数据,运行在不同的设备上。1、谁在用Nodejs? 从Nodejs官方网站的企业登记页(https://github.com/joyent/node/wiki/Projects,-转载 2015-06-01 16:42:14 · 750 阅读 · 0 评论 -
nodejs使用npm发布模块带npm报错(verbose stack Error: Invalid name: "")解决
当我们安装好了nodejs和npm环境后,使用npm publish 把模块发不到npm时,包如下错误:仔细查找问题,发现原因是由于npm在发布时,package.json中name属性值不准许有大写字母造成。手动修改package.json中name属性值修改后,即可。原创 2015-05-29 18:10:18 · 16893 阅读 · 0 评论 -
开发nodejs模块并发布到npm的简单示例(win7)
1、首先安装nodejs和npm环境,可以在cmd命令行上验证:node -vnpm -v2、创建一个小的例子: 1)在F:/nodeJs/helloWord下建立一个hello.js,内容如下:function hello(name){ console.log("hello"+ name);}exports.hello=hello; 2)测试: cmd原创 2015-05-29 18:06:02 · 1694 阅读 · 0 评论 -
nodejs npm包管理常用命令介绍
1、输入 npm config ls -l 可以查看当前的设置2、针对某一项设置,可以通过下面方式:npm config set 属性名 属性值eg:npm config set prefix "C:\123\"3、读取某一项配置,可以通过下面方式:npm config get 属性名eg:npm config get prefix转载 2015-05-29 14:56:15 · 2204 阅读 · 0 评论 -
nodejs npm install全局安装和本地安装的区别
npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已。格式如下:npm install 包名 # 本地安装npm install -g 包名 # 全局安装具体区别:1、安装模块包位置: 1)全局安装时,会把模块下载到“全局目录”中,【全局目录】通过 npm config set prefix "目录路径原创 2015-05-29 14:37:36 · 3865 阅读 · 0 评论