Node.JS进程间通讯的几种方法:Redis Publish/Subscribe 和 UDP Socket 如果您装有redis客户端就可以通过 redis 的 publish/ subscribe方法来通讯,注意一旦使用subscribe,则此 redis 只能接收:SUBSCRIBE、PSUBSCRIBE、UNSUBSCRIBE和PUNSUBSCRIBE 等消息订阅指令,您可以专门创建一个redis实例来进行进程间通信。
判断Node.JS TCP Socket当前连接状态 Node.JS 官方文档中并没有获取当前 socket 连接状态的说明。不过打印 socket 可以看出,可以通过 socket._handle 属性来判断,当socket end或 destroy后,此属性被设为null。当建立tcp连接后 _handle 为 tcp 对象:
Socket {
connecting: false,
_hadError: false,
_handle:
TCP {
bytesRead: 0,
_externalStream: {},
fd: -1,
reading: true,
owner: [Circular],
onread: [Function: onread],
onconnection: null,
writeQueueSize: 0 },
_parent: null,
_host: null,
用JavaScript实现node.js中的path.join方法 Node.JS中的 path.join 非常方便,能直接按相对或绝对合并路径,使用: path.join([path1], [path2], [...]),有时侯前端也需要这种方法,如何实现呢?
其实直接从 node.js 的 path.js 拿到源码加工一下就可以了:
1. 将 const 等 es6 属性改为 var,以便前端浏览器兼容
2. 添加一个判断路戏分隔符的变量 sep,即左斜杠还是右斜杠,以第一个路戏分隔符为准
3. 将引用的变量和函数放到一个文件里就可以了:
JavaScript中新建一个带全局变量参数的new Function动态函数 有些场景会动态传递一些计算公式到后端,后端计算出结果,计算公式可能会使用到一些变量。如用户输入的公式: a + b,需要计算 a + b 的值。有一种方法,在公式中使用 this 参数,然后传入model实现,如:
myFunc = Function( 'return this.a + this.b' )
上海行业工资排名:产品经理一骑绝尘,前端排名第二? 根据已经公布的数据来看,今年上海平均工资为:年平均工资78045元,月平均工资为6504元,比上年增长9.5%。上海平均工资最高的岗位
排名 | 岗位 | 平均工资 |
1 | 产品经理 | ¥14317 |
2 | web前端 | ¥10838 |
3 | 项目经理 | ¥10572 |
4 | ui设计师 | ¥10131 |
Node.JS命令行或批处理中更改Linux用户密码 chpasswd 可在批处理文件中批量更改Linux用户的密码。用法:
chpasswd [options]
Git服务器搭建,多用户组权限控制配置,添加新用户密码登陆 因为git是通过ssh协议实现的,所以权限控制与Linux的权限控制一致,即可以通过ssh key文件登录,也可以设置你用户名密码登录。这里主要介绍如何搭建git服务器并通过用户组设置户用户登录。
服务器端安装 git server
apt-get install git-core
设置select元素中option的默认值 可以在option上添加selected属性来设置select元素默认选中的值:
<select id="auth_access" class="form-control ">
<option value="none">禁止</option>
<option value="read">只读</option>
<option value="write" selected>写入</option>
</select>
JavaScript用Number/parseInt/parseFloat判断字符串是否为数字 通过isNaN判断是否为 NaN
isNaN(Number('vip1')) //true
isNaN(Number('1.1')) //false
用JavaScript将input/textarea中的文本复制粘贴到剪切板 浏览器对剪切板有一定的安全限制,与 window.open 方法类似,只有在用户交互过程中才允许操作,比如说鼠标点击,键盘输入等。
要想将文本复制到剪切板首先要将该文本框全选,如:
document.querySelector('#input').select();