node有哪些坑?】的更多相关文章

对于 Notadd 我们本来期望它实现更多... 尽管我们也尝试做了很多努力,但是由于 PHP 本身的局限,以及考虑到开发环境配置的复杂程度,最终使用了折中方案.接下来,我们谈谈整个技术选型历程,也供今后相关开发者做借鉴和参考: 起因 我们期望 Notadd 不仅能应用到 web 领域,在嵌入式开发领域也能有所应用,同时能够使用常用的 websocket 协议. Swoole swoole 是我们考虑的首选方案,但从扩展性来说,难以符合我们模块化的要求,对 HTTPS 和 HTTP2 支持不够完…
const server = http.createServer((req, res) => {} const server = http.createServer((res, req) => {} error…
啊啊啊啊啊啊啊啊啊啊啊啊啊啊,被node的fs坑了一下午,我又爬上来了,要坚强的笑着活下去,嗯,没毛病老铁. let http = require('http'); let fs = require('fs'); let url = require('url'); let server = http.createServer((request,response)=>{ var pathname = url.parse('http://127.0.0.1:3000/ceshi.html',true…
前提工作 1.安装Node.js 各种下一步就好 2.安装NPM(node package manager) 安装好Node.js之后,打开cmd,输入npm install npm -g,程序会自动安装npm包管理器 3.安装Express(这个和node.js的关系好比asp.net和c#的关系) npm install -g express 4.安装Express相关东西 a.安装Express命令行工具(4.X之后需要)npm install -g express-generator b…
先说说我为什么使用nvm吧 最近在搞react-native,就碰到了很多坑,其中就有node带来的坑,当你运行react-native start (这是rn启动服务器的命令)就会报一个正则的错误,查了好久,终于找到了原因,是因为node的新版本使用v8引擎(好像是这样的,记不太清楚了),于是就导致正则匹配出现问题,于是照着GitHub人家给出的解决方法试了试,修改metro-config里面一个文件的内容,结果还是报错,一气之下,nvm,他来了.... 至于使用nvm的好处就是多版本控制no…
最近开发组培训了ElasticSearch,准备开展新项目,我也去凑了下热闹,下面把学习过程记录一下. 一.安装 1.环境需要jdk1.8; 2.下载:http://www.elastic.co/downloads/elasticsearch 3.下载完成后在端终解压,解压命令:tar -vxf elasticsearch-6.2.4.tar 二.启动elasticSearch 进入文件夹:cd elasticsearch-6.2.4 启动命令:sh ./bin/elasticsearch 如下…
转:https://mritd.me/2016/10/29/set-up-kubernetes-cluster-by-kubeadm/#23镜像版本怎么整 一.环境准备 首先环境还是三台虚拟机,虚拟机地址如下然后每台机器安装好 docker,至于 rpm 安装包版本下面介绍 IP 地址 节点192.168.1.167 master192.168.1.189 node1192.168.1.176 node2 二.说点正经事 2.1.安装包从哪来 官方的文档页面更新并不及时,同时他的 yum 源更新…
安装必需软件 Homebrew Homebrew, Mac系统的包管理器,用于安装NodeJS和一些其他必需的工具软件. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" homebrew在安装软件时可能会碰到/usr/local目录不可写的权限问题.可以使用下面的命令修复: sudo chown -R `whoami` /usr/loca…
背景:vue下使用elementUI 文档:http://element-cn.eleme.io/#/zh-CN/component/tree#tree-shu-xing-kong-jian 需求:只保存二级节点中选中的数据:不保存一级节点选中的数据. 效果: 数据来源:后台提供两个接口分别用于取第一级节点和第二级节点的数据: 思路:点击标签列表时,触发selectLabelList获取第一级节点的数据触发lodeNode进行填充,展开一级节点:点击任一一级节点的下拉箭头通过loadNode的n…
java项目中使用log4j记录日志几乎成了标配, 最近一个项目中出了个问题  现象是这样的:  不连vpn程序一切正常,连上VPN启动程序 直接异常退出, 错误日志直接指向了 log4j 库 org.apache.logging.log4j.core.util.UuidUtil.clinit 就是说在 UuidUtil 这个类初始化时出了问题 最终错误在此处 数组index超界 原因是在我的机器上不连vpn  mac是一个长度为6的数组   连vpn后长度为8 了 mac长度为8   则 le…
说在前面 如题目所言 这篇文章为了给下一篇二叉查找数做铺垫和前期知识准备,以便大家有良好的阅读体验,本来想合在一起的,但觉得有些长,所以就拆开了哈哈哈,还是新手向,两篇文章有些长,但如果能认真看下去,实操踩一遍,我认为新手对二叉树的代码实现和基础知识这块,就没什么问题了.当然如果有大佬赐教留言则洗耳恭听哈哈. 符号表 含义 是一个键和一个值联系起来是它的目的,用例可以插入一对键值入表,也可以按键索值,可以按照地图去理解:键就是坐标,地点就是value,概念很简单 分类 有序:无序 ,他们的区别可…
babel.min.js!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Babel=t():e.Babel=t…
这篇就先暂停下上篇博客--你画我猜的进度,因为在做这个游戏的时候,想采用最新的ng2技术,奈何坑是一片又一片,这边就先介绍下环境部署和填坑史 既然要用ng2,首先要拿到资源,我这边用的是angularJs2 beta版的,网上的资源有两种,一个是文件全压缩版的.min.js版的另一个就是一大堆乱七八糟的js文件,主要是ng2已经完全采用TypeScript,加之对es6的支持,所以需要引入一大堆兼容,编译文件 这边刚好特别手欠想学学gulp,于是开搞配置gulp环境,压缩所有的js文件成一个mi…
之前写了个小程序Node News,用到了MySQL数据库,在本地测试均没神马问题.放上服务器运行一段时间后,偶然发现打开页面的时候页面一直处于等待状态,直到Nginx返回超时错误.于是上服务器检查了遍,发现程序仍然在运行,且能正确记录每次的请求,再修改代码跟踪调试,原来是在查询数据库的时候,回调一直没有被执行,程序就挂在那里了. 想了很久也想不明白为神马mysql模块没有执行回调,最后突然想起来去看了下错误日志,才发现有个“No reconnection after connection lo…
由于express升级到3.0,造成这本书看起来more and more蛋疼.记录少许坑儿,方便后来人. 一.node.js在windows下的安装 书中在两处介绍了两种方式,其实现在的node.js在windows下只需要下载一个.msi文件安装就可以,那个什么python支持可以浮云了. 二.express中使用ejs创建工作目录 1.书中给出的 express -t ejs projName 参数-t在3.0中已经改为-e. 默认安装的为jade而不是ejs,所以创建出来的目录结构会不一…
本人也不太了解AES加密解密,为了解决Node.js加密,但是无法C#解密的问题,在网上搜了大量的相关文章. 但是多数是Node.js vs Java 或 Java vs C#的双向加密解密代码,但是没有Node.js vs C#. 然后通过反复试验,找到了解决办法. 不多说了,上代码,有坑不怕,随我冲! Node.js加密 var crypto = require('crypto'); var secretKey = 'password'; var aesEncrypt = function(…
Node是什么? Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码. 以上是比较官方的解释.简单来说,就相当于一个开发平台,不过这个平台及其简陋,官方没有ide(其实也不太需要),它不像php需要容器来运行,所有的开发.调试.管理.发布等工具都是民间的自己动手的产物,所以也诠释了为什么它的目标是帮助程序员构建高度可伸缩的应用程序. 进来发现Node有…
环境安装(极简): Node需要的环境可以说及其简单,也可以说及其复杂.为什么这么说呢? 如果里只需要运行环境那么到Node官网下载一个包就行了.里面自带npm管理工具,这是包管理工具,以后会频繁的使用它的功能.这时候Node的基本环境已经齐备了,尽管没有ide,没有测试,没有代码管理,没有其他的编译环境(C.C++.Python等).安装步骤不管是windows还是mac都是下一步的事,这里就不多说了. 那么,我们先从这样一个状态下进入Hello World. 打开终端,windows下开始-…
项目背景 nodejs项目,webpack打包,用axios请求,Promise封装,nunjucks模板引擎: 之前已将nunjucks模板通过webpack打包策略,做成前后端共用: 目前需要将网络请求以及数据处理封装成service模块: 目录划分: 如上图所示: 将公共代码放到service中,整合两端共同的一些网络请求以及数据处理(node首屏,客户端再次请求数据更新等操作) 这里碰到的两个问题: 1. node模块使用module.exports,而webpack我们使用的是impo…
页面整体框架实现,实现小功能,循环出数据,整体代码是上一篇 vue+node.js+webpack开发微信公众号功能填坑--组件按需引入 修改部门代码 app.vue <yd-flexbox> <yd-flexbox-item>能耗排行</yd-flexbox-item> <yd-flexbox-item>房间号</yd-flexbox-item> <yd-flexbox-item>能耗程度</yd-flexbox-item&g…
1 前言 nodejs的回调,有时候真的是让人又爱又恨的,当需要用for循环把数据依次存入数据库,但是如果使用正常的for循环,永远都是最后一次值的记录,根本不符合要求. 解决此方案有几种,例如闭包(这里利用js函数编程的特性,建立一个闭包来保存每次需要的i值),详情参见参考1和Asyn函数,然后函数的forEach方法也是居于它实现的. 注:async主要实现了很多有用的函数,例如: each: 如果想对同一个集合中的所有元素都执行同一个异步操作. map: 对集合中的每一个元素,执行某个异步…
首先先明确,用node+ts的目的,为什么不ng+ts.这一点后面还会反复提醒自己 node毕竟不是ng. 用node的理由: 处理js,在后端操纵dom,读写类html格式的东西,比直接用py的后端更舒服. 着眼点还是后端数据处理,作为类似单机版数据库的后台进程db_master(RESTful API等于 数据库的CRUD). 不需要写界面,不需要web component这些.所以用ts,不意味着,到处都是class.仍然是data居多,function居多. 用ts的理由: 主要理由:给…
[ubuntu下搭建node server的几个坑] 1.环境变量 process.env.PORT需要使用 export PORT=80设置 windows下是set PORT=80 2.命令连结 linux下是&&(两个),而windows下是&(1个) linux:export PORT=80 && node ./bin/www windows:set PORT=80 & node ./bin/www 3.80端口必须root权限才能开启,否则会出错.…
  之前用node.js写的订餐系统,很容易挂掉,一直也没想去解决它.今天看了一下,试了试,原因是在连接数据库的时候没有对error事件进行处理,导致程序一直挂在那里,需要重启服务才能正常使用.   没有使用缓存,直接都是操作数据存,所以导致一个页面数据库请求比较多.如果按住f5不动,操作太快,查询还没来得及响应,connect就被断开了,触发其error事件.但没有对它进行处理,导致程序直接挂在那里不动了   在getConnection函数中添加了对error事件的监听,能避免掉这个问题  …
在BAE上使用node.js半年多了,其中碰到了不少因为BAE云环境限制碰到的坑 写下来大家碰到了,也不用那么麻烦的去看好几天代码了,直接对症下药 官方公布的坑有: BAE是使用package.json中的script语句来执行代码的,要执行的文件名必须带后缀如 "start" : "node index.js" MySql和Mongodb不支持长连接,应在代码中避免掉 端口统一为 连接MySQL时用户需要主动捕获异常 实践发现的坑有: 如果要在node中使用mys…
探索 计算机不会欺骗人,一切按照规则执行,说找不到这个文件,那肯定就是真的找不到,至于为什么找不到,那就是因为我们理解有偏差,我最初理解的'./'是当前执行js文件所在的文件夹的绝对路径,然后Node.js的理解却不是这样的,我们慢慢往下看. Node.js中的文件路径大概有 __dirname, __filename, process.cwd(), ./ 或者 ../,前三个都是绝对路径,为了便于比较,./ 和 ../ 我们通过 path.resolve('./')来转换为绝对路径. 简单说一…
[微信测试公众号] 半年前耍着玩搭起来的“微信简历”,是LAMP版的,很皮毛. 微信的官方文档在这 http://mp.weixin.qq.com/wiki/index.php 1.获取access token 2.自定义菜单创建,直接在调试工具上做了 http://mp.weixin.qq.com/debug 3.接入指南(接入自己的网站) 4.接收微信消息,判断消息类型,判断消息关键字(比如来自哪个按钮),响应消息 这里有个小坑,不同类型的消息数据结构略有不同,判空最好做细致点. [V2.0…
ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口. 不把require和import整清楚,会在未来的标准编程中死的很难看. require时代的模块 node编程中最重要的思想之一就是模块,而正是这个思想,让JavaScript的大规模工程成为可能.模块化编程在js界流行,也是基于此,随后在浏览器端,req…
写给自己做个记录: 弄了半天 执行了下面操作 npm install webpack -g 因为小白不懂原理,所以执行了好遍,结果还是如题, webpack command not found 网上搜了半天,试了各种办法, 明明是显示安装成功了, 突然醒悟 安装node的时候,是用编译后的文件, 然后用 软链接 ln到系统bin下,配置环境 结果在安装webpack的时候,虽然安装成功,却到了node的bin下,并不是系统环境变量, 所以一直执行失败. 最简单解决办法:做个链接到系统环境下. 另…
Node.js的crypto模块提供了一组包括对OpenSSL的哈希.HMAC.加密.解密.签名,以及验证等一整套功能的封装.具体的使用方法可以参考这篇文章中的描述:node.js_crypto模块. 本文重点介绍在使用createCipheriv方法时所遇到的坑.对应的解密算法createDecipheriv应该是一样的问题. 按照文档中的描述,createCipheriv方法接受三个参数:algorithm用于指定加密算法,如aes-128-ecb.aes-128-cbc等:key是用于加密…