联系站长免费投稿发布招聘信息
职责
负责公司两大平台智课网(smartstudy.com)和极智批改网(smartpigai.com)功能开发、
BUG修复及日常维护,依据公司产品设计完成产品功能模块的编程开发。
职位
node.js 高级开发工程师
学历
本科及以上
坐标
北京 - 海淀区 - 交通大学 - 上园村3号北交大知行大厦2层
要求
1、计算机相关专业,本科及以上学历;
2、熟悉nodejs相关开发框架,理解异步编程模式;
3、熟悉css, html5;
4、熟悉linux/mac系统;
5、熟练掌握MySQL数据库,配置管理等操作;
6、熟悉常用的数据结构和算法,
2016-09-06
6683
招聘
查看更多
前面一系列介绍 Sails 框架学习
今天和大家分享 Sails 框架下模型自带的方法
1 . create(),
update(),
destroy(),
find(),
findOne(),
destroy(),
findOrCreate()
count(),
create() 创建记录 TestUser.create({name:'yijiebuy', email:'admin@yijiebuyi.com', gender:'male', age: '30'}, function(err, model){
});
创建一条新纪录后,回调函数
2016-09-06
8598
nodejs
查看更多
联系站长免费投稿发布招聘信息
职责
基于node.js 服务端开发
职位
node.js 全栈工程师
经验
2 年以上Server 开发
学历
大专以上
坐标
10号线地铁健德门站
要求
JavaScript 基本概念清晰
熟练掌握闭包、事件、回调、Promise
熟练掌握NodeJS核心模块的和常用模块
熟悉Node.js及其相关工具
有服务器端开发背景 (.NET、 Java、Python、PHP等其中一种后端语言的开发经验)
熟悉 MongoDB,Redis,MySQL,RabbitMQ 一种或多种
能阅读理解英文文档
GitHub帐号开通时间在半年以上
可以独立编
2016-09-05
6061
招聘
查看更多
上一篇是关于 sails 定义模型models 属性字段定义类型
这一篇和大家分享关于 sails 的 orm框架 WaterLine 在与数据库操作过程中的生命周期控制.
生命周期
WaterLine 在执行过程中的生命周期可以简单的理解为:
调用前干什么
调用中.....
调用后干什么
具体有哪些操作会执行上面的生命周期
创建 create
创建记录时生命周期依次执行下面几个步骤:
验证模型数据之前..
验证模型数据之后..
创建记录之前..
创建记录之后..
beforeValidate: fn(values, callback)
afterValidate: fn(values
2016-09-05
6182
nodejs
查看更多
Waterline Models 字段定义类型设置
waterline 中涉及到的字段类型如下:
string
text
integer
float
date
time
datetime
boolean
binary
array
json
模型属性 module.exports = {
identity: 'Article_content',
autoCreatedAt:false,
autoUpdatedAt:false,
tableName:'Article_Content',
autoPK:false,
attributes: {
}
}
ide
2016-09-02
6858
nodejs
查看更多
之前有一篇简单介绍了 Sails下orm框架 waterline
Waterline 常用的查询方法 find 条件查询 事例:
models.user.find().exec(function(err, models) {
if(err)
return res.json({ err: err }, 500);
});
上面事例的 find 方法无参数,相当于全表查询,最后执行 exec 方法拿到数据.
现在我们来看下 find 方法可以接受哪些参数呢.
find 方法可以接收 3类参数:
过滤条件 where
查询条数限制 skip 和 limit
排序条件 so
2016-09-01
11016
nodejs
查看更多
blueprints 是 sails 框架特色功能
Sails中的路由,blueprint 功不可没,网上翻译成 "蓝图" ,
Sails的blueprint是负责指挥每一条客户端请求应该分配到服务器端的哪个Action去 ,你可以理解成路由的"调度中心"
blueprint主要分为三种:RESTful routes、Shortcut routes、Action routes .
RESTful routes 当路径诸如:
/:post 或者 /:post/:id的时候,blueprint会根据HTTP的动作(GET、POST、DELETE、PUT等
2016-08-25
6417
nodejs
查看更多
上一篇介绍了 使用sails框架快速搭建项目
今天和大家分享 sails 另外一个重要的功能模块:
sails的ORM实现 什么是ORM
Java 中的 Hibernate 框架的一个重要功能便是将数据库中的数据与 Java 中的对象进行映射,被称为 ORM (Object Relational Mapping),
Node.js 里常用的 Mongoose ,便是将 MongoDB 的文档,映射为 JavaScript 的对象,
而 Waterline 可以看做是一个支持多种数据库的 Mongoose ,使得可以用一样的代码来实现对多种数据库的操作,无论是关系数据库还是文档数据库,都可
2016-08-25
9402
nodejs
查看更多
什么是Sails Sails.js使部署一个定制的企业级Node.js应用变成一件极为简单的事,它的设计模仿了像Ruby on Rails这样的MVC框架,但是更支持现代应用的开发需求:可扩展的数据驱动层的API,面向服务的架构,Sails.js允许你方便快速得使用Node.js生成应用,并通过MVC模式来使管理和维护代码变得更加简单.
使用 Sails Sails.js 依赖 node.js ,使用时确保你的环境安装了 node.js 环境.
npm install sails -g
搭建项目 安装了 node.js 和 sails.js 的环境,只需要一条命令即可创建 sails 框架
2016-08-23
16326
nodejs
查看更多
#产品要求:必须先关注公众号才能参与活动
###上面需求涉及到的几个点:
1.access_token中继服务
2.第三方页面授权
3.获取微信用户信息
前面有一篇 node.js定时获取access_token
那么根据此博文我们可以解决 access_token 中继服务的创建
第三方页面授权
前提:必须微信服务号 且 第三方站点域名设置为微信管理后台安全域
获取微信用户信息
前提:微信管理后台开通开发者模式,且微信回调接口调试无误.
如何在页面授权时判断用户是否关注
首先拉取当前公众号下所有关注用户 (存储用户 openid )
然后根据存储的所有用户openid 去获取
2016-08-18
11291
nodejs
查看更多
前面连续分享2篇关于微信开发的文章.
node.js 定时获取 access_token
使用 wechat 开发微信回调接口
今天分享 node.js 开发微信菜单
前提:
1.首先是切换到了开发者模式
2.微信管理后台已经授权自定义菜单,如下图例是没办法提交菜单的
当你的微信从编辑模式切换到开发者模式时,
之前你手动定义的关键词回复,
手动创建的菜单全部失效.
微信自定义菜单
说白了非常简单.
微信自定义菜单就是一次 POST 请求.
请求接口:
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TO
2016-08-16
6158
nodejs
查看更多
node.js 开发微信系列二
wechat 开发微信回调接口 上一篇我们介绍了 node.js下定时获取access_token
这里可能有个疑问,node.js 开发微信回调接口和定时获取 access_token 有关系吗?
其实没有必然的关系,通过微信回调接口我们可以方便的获取到交互者的 openid
但是,如果你想根据 openid 获取当前交互者的用户信息时,就必须要 access_token 了.
今天我们只谈 wechat 如何使用,获取用户详情在以后的博文中介绍.
wechat
微信公共平台消息接口服务中间件
github地址:
https://github.com/
2016-08-15
11510
nodejs
查看更多
什么是access_token
access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效 [来自微信文档]
当你的多个微信开发相关服务并存时,多个服务各自去获取 access_token ,最后导致其中一些服务会不能正常访问.
所以这种情况下,应该设置一个获取 access_token 的中控服务器.
因为 access_token 的有效期为 2个小时,
2016-08-11
9318
nodejs
查看更多
CentOS 64位系统安装破解 jira6.3.3
准备条件
1.安装java 环境
2.设置java 环境变量
3.安装数据库
4.下载jira 6.3
5.安装jira 6.3
6.申请临时授权码
7.汉化
8.下载破解版 atlassian-extras-2.2.2.jar 替换原组件
9.重启jira ,更新授权码
10.破解成功
1.安装java 环境 新版jira 需要jdk 1.8 以上版本支持.
我用的版本是 1.8.0_65
tar -zxvf jdk-8u65-linux-x64.tar.gz
mkdir /usr/java
mv jdk1.8.0_65
2016-07-26
18381
开发工具
查看更多
#node.js 调用 shell 脚本
现在能见到的有很多很多种方法
今天和大家分享的是 shelljs
shelljs 安装 npm install shelljs --save
shelljs 使用 exec 方法 var shell = require("shelljs");
// exec 方法
shell.exec("echo hello world!");
shelljs 使用全局模式 require('shelljs/global');
mkdir('-p', '/var/log');
cp('-R', '/var/log/*', '/home/zhang
2016-07-22
13319
nodejs
查看更多
mysql 中常常出现对中文支持不友好的情况
常见的错误 "Illegal mix of collations for operation"
下面我们规整一下 mysql 数据库中一共涉及到哪些字符集
character-set-server/default-character-set:服务器字符集,默认情况下所采用的
character-set-database:数据库字符集
character-set-table:数据库表字符集
一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-
2016-07-12
8326
开发工具
查看更多
针对mysql 和 mongodb 不同数据库下坐标转换距离排序
mysql
//坐标转换因子.是需要计算的.
xFactor = cityObject.xFactor;
yFactor = cityObject.yFactor;
//地区坐标
latitude = location.latitude;
longitude = location.longitude;
//组合sql语句
let sql = [
'SELECT *, ',
' sqrt(pow((latitude - ' + latitude + ') * ' + yFactor + ',2) + ',
' p
2016-06-23
8071
mongodb
查看更多
概述 首先你必须知道,端口不是独立存在的,它是依附于进程的;
某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了;
下次若某个进程再次开启,则相应的端口也再次开启;
而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口.
查询端口 比如我们要查询 6379 端口
netstat -anp | grep 6379
[root@centos76 ~]# netstat -anp | grep 6379
tcp 0 0 172.16.60.111:6379 0.0.0.0:* LISTEN 2195/red
2016-06-19
7554
linux
查看更多
2016年5月27日,有幸被邀请参与云测主办的App质量管理优化方案
今天准备临时整理一下,分享出来
针对App开发过程中质量管理优化,一介布衣是以一个开发者的视角去看待整个流程,力求在需求开发,评审,研发,测试,发版等各个环节去控制自己的节奏,尽量避免在各团队衔接或者流程控制上影响app质量.
#团队目标
如何在规定时间内开发出符合质量要求的产品 代码质量把关
代码review
作为一种纯手工创造性劳动,每个工程师去 review 一下自己的代码,并不是"秀",起码对方可以知道对方在干什么,而且还可以用自己的思维模式去判断对方的代码实现是不是最优,有没有改进的
2016-05-29
10742
心得
查看更多
网上用了很多家企业邮箱
免费的不好用,或者收费的价格太贵....那干脆自己搭建邮件服务器了.
搭建邮件服务器目前最流行的应该是 postfix + devocot 组件.
而系统自带的 sendmail 配置起来相当困难,所以我压根就没有去试.并且在安装前直接卸载了 sendmail .
第一步
设置域名MX 解析
首先要有指定 ip 的 A 记录解析
@ A 111.111.111.111
需要有 mail 二级域名的 A 记录解析
mail A 111.111.111.111
MX 记录解析
@ MX mail.yij
2016-05-23
26616
linux
查看更多
说实话,之前玩 mongodb 都是裸奔,都不需要用户名和密码直接连接 mongodb.
但是,正在在使用 mongodb 来开发的时候,还是要设置一个专属的账号,密码来连接数据库.
如何在mongodb 中创建一个用户 Mac下使用 brew 安装mongodb 请点击左侧链接打开.
shell 下连接 mongodb
➜ /Users/zhangzhi >mongo
MongoDB shell version: 3.2.0
connecting to: test
默认连接到 test 数据库. 切换数据库到 admin
> show databases
admi
2016-05-21
14778
mongodb
查看更多
很久没来了,最近太忙(当然是借口~~)
今天和大家分享如何安装使用 phpMyAdmin 服务来管理mysql数据库.
首先你需要安装mysql (废话)
yum -y install mysql
下载 phpMyAdmin
比如 我们下载了 phpMyAdmin-4.0.4.1-all-languages.zip
[root@mail ~]# unzip phpMyAdmin-4.0.4.1-all-languages.zip
[root@mail ~]# mv phpMyAdmin-4.0.4.1-all-languages /var/www/html/
[root@mail ~
2016-05-10
6408
开发工具
查看更多
常用缓存策略简介 常用的三种缓存淘汰(失效)算法:FIFO,LFU , LRU
缓存数据全部放在内存中,因此不可能无限制地添加数据。
假定我们设置缓存能够使用的内存大小为 N,那么在某一个时间点,添加了某一条缓存记录之后,占用内存超过了 N,这个时候就需要从缓存中移除一条或多条数据了。
那移除谁呢?我们肯定希望尽可能移除“没用”的数据,那如何判定数据“有用”还是“没用”呢?
1.1 FIFO(First In First Out) 先进先出,也就是淘汰缓存中最老(最早添加)的记录。
FIFO 认为,最早添加的记录,其不再被使用的可能性比刚添加的可能性大。
这种算法的实现也非常简单,创建一个队列
2016-04-11
1253
开发工具
查看更多
在CentOS 系统下,把 php 5.3 升级到 5.4 版本
查看你的版本
[root@10-10-126-106 ~]# php -v
PHP 5.4.45 (cli) (built: Oct 16 2015 11:02:47)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
具体步骤
查看之前 php 版本:
[root@localhost ~]# rpm -qa |grep php*
php-5.3.3-46.el6_6.
2016-04-08
8687
linux
查看更多
Markdown是一种轻量级标记语言,创始人为約翰·格魯伯(英語:John Gruber)。
它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。 这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。[维基百科]
markdown可以让你专心写作而摆脱排版的困扰.
一些常用语法要花几分钟时间来记住.
标题
一个#表示一级标题,
几个#号对应表示几级标题,
最多支持六级标题.
注:标准语法一般在#后跟个空格再写文字
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
效果:
一级标题
2016-03-18
2293
开发工具
查看更多
ssh连接超时问题解决方案: 修改server端的 etc/ssh/sshd_config 配置 ClientAliveInterval 7200 #server每隔7200秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 30 #server发出请求后,客户端没有响应得次数达到30,就自动断开连接,正常情况下,client不会不响应
重启配置:
service sshd reload
$TMOUT系统环境变量 配置 sudo nano /etc/profile
在最后一行增加
export TMOUT=1800(单位秒)
保存并
2016-03-18
1296
linux
查看更多
针对 Linux 系统下 nginx 访问日志查询.
我们常常会直接上服务器使用 cat ,head , tail 等命令来查看.
但是面对几个G ,甚至几十个G 的log日志文件时,你想定位到多少行到多少行,谈何容易!
所以,今天和大家分享一个按日期提取 log 日志的方法.
sed 命令简介
sed全名叫stream editor,流编辑器,用程序的方式来编辑文本,基本上就是玩正则模式匹配,相当的hacker.
sed 参数简介
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过
2016-02-24
19195
linux
查看更多
find命令搜索文件
find命令非常高效,并且使用简单.
find命令来自unix,OS X和Linux系统同样支持该命令.
find命令格式: ** find 文件路径 参数**
这用户目录下查找 查找文件名中包含 redis.conf 的文件
find ~ -name "redis.conf*"
-name 是指定参数
redis.conf* *号匹配任意字符,说明以 redis.conf 开头的文件
指定文件目录下查找 在特定的文件夹中寻找特定的文件,比如 这 / 目录下查找 redis.conf开头的文件
find ~ -name "redis.conf*"
m
2016-02-09
1376
linux
查看更多
在开发过程中,团队代码风格统一,会让我妈避免不必要的错误和低级 Bug、控制代码质量,这样我们最好会预定一套编码规范.
检验JavaScript编码规范的工具有哪些?
jslint
jshint
ESLint
下面简单看下这3个检验工具之间的差别:
jslint
jslint 的作者是 Douglas Crockford(《JavaScript: The Good Parts》的作者)。
Douglas Crockford 制订了一套 JavaScript 编码规则,
JSLint 通过检查和分析 JavaScript 代码,
将任何违反规则的代码警告给开发者,
且无法通过配置关闭一
2016-02-05
7563
javascript
查看更多
为了发这篇文章,我挣扎了好久,至少2年前我就想分享一篇关于vpn的文章,最后咬咬牙,跺跺脚忍了.
最近,一位朋友真好也遇到vpn连接的一些不如意,
借着新年之际,我非常想分享下如何免费给自己搭建一个vpn,
让需要跨栏的人顺利看看外面的世界.
我迟疑了很久,该不该发这样的文章,
一旦发出去,很多优秀免费资源马上会被滥用,直接的原因就是关停,谁都用不成.
内心的挣扎,我最后还是说服了自己,我觉得来我博客的应该都是各类攻城狮,
退一万步讲,大不了年后我删除了这篇文章.
所以,标题,标签,配图 我开始很详细的写一篇如何一步一步搭建.
大概完成40% 的时候,我感觉这篇文章还是不要发出去好,
为
2016-02-04
6235
开发工具
查看更多