node.js json-server 使用教程

一. json-server介绍 json-server 一个在前端本地运行,可以存储数据的server ,模拟接口,操作模拟数据 二. json-server的使用 2.1 安装 npm install json-server -D 复制代码 安装完成之后,可以通过 json-server -h 命令检查是否安装成功 json-server [options] Options: --config, -c 指定 config 文件 [默认: "json-server.json"] --port, -p 设置端口号

Nodejs Event Loop 事件循环机制

什么是事件循环 Event loop 事件循环是 Node.js 处理非阻塞 I/O 操作的机制——尽管 JavaScript 是单线程处理的——当有可能的时候,它们会把操作转移到系统内核中去。 既然目前大多数内核都是多线程的,它们可在后台处理多种操作。 当其中的一个操作完成的时候,内核通知 Node.js 将适合的回调函数添加到 轮询 队列中等待时机执行. 工作机制是什么样的? Client 请求到达 node api,该请求被添加到Event Queue(事件队列)[这是因为Node.js 无法同时处理多个请求] Event Loop(事件循环) 始终检查事件队列中是否有待处理事件,如果

glob node.js下可以像shell模式一样匹配文件

前言 早期 Unix (第 1-6 版,1969-1975)的命令行解释器依赖独立程序 /etc/glob 展开参数中的通配符。 这个程序会展开通配符并把展开后的文件列表传给命令。 它的名字是 "global command" 的简称。 后来这个功能由工具函数 glob() 提供,被 shell 等程序使用。 -- 维基百科 python语言中有了golb封装的包,接着有了今天我们看到的JavaScript实现的glob. Glob可以做什么 它可以根据指定的通配符来匹配文件,并且把匹配到的结果列表返回给你. 安装 npm install glob 用法 v

node.js Express 框架下支持跨域服务

前言 由于现在的项目都流行前后端分离, 导致后端部署服务和前端一定不会解析到一个服务上, 这样面临的就是跨域请求. 什么情况下会出现跨域请求点击查看这篇博文介绍. 解决跨域的方法 nginx设置跨域请求头点击查看 服务端代码解决跨域 今天我们介绍后者,服务器端如何解决跨域. Express框架下设置跨域请求 cors安装包 自己定义中间件 cors安装包 npm install cors --save 使用 const cors = require('cors'); server.use(cors()); 自定义中间件 项目 middlewares 文件夹下创建 cors.js m

node.js Express 中间件是如何实现的呢

什么是node.js 的中间件 在整个web请求的生命周期中, 客户端request 过来一个请求, 接着服务器端做出响应处理, 最后response结果给客户端. 上面这个请求过程中,其中服务器端做出响应处理时,会有一系列处理单元,这些处理单元可以简单的理解成中间件. node.js中间件: 它泛指一种设计模式、一系列的处理单元、过滤器和处理程序; 以函数的形式存在,形成一个异步队列,来完成对数据的预处理和后处理; 它的优点在于灵活处理业务逻辑中的单元模块; 使用中间件我们用极少的操作就能得到一个插件,用最简单的方法就能将新的过滤器和处理程序扩展到现有的系统上. Express 中间件实现

sails modules 模型自带的方法介绍

前面一系列介绍 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){ }); 创建一条新纪录后,回调函数

node.js 下 sails orm框架 WaterLine 生命周期介绍

上一篇是关于 sails 定义模型models 属性字段定义类型 这一篇和大家分享关于 sails 的 orm框架 WaterLine 在与数据库操作过程中的生命周期控制. 生命周期 WaterLine 在执行过程中的生命周期可以简单的理解为: 调用前干什么 调用中..... 调用后干什么 具体有哪些操作会执行上面的生命周期 创建 create 创建记录时生命周期依次执行下面几个步骤: 验证模型数据之前.. 验证模型数据之后.. 创建记录之前.. 创建记录之后.. beforeValidate: fn(values, callback) afterValidate: fn(values

Waterline Models 字段定义类型设置

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

sails 框架下 Waterline ORM 常用查询方法

之前有一篇简单介绍了 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

sails 特色路由 blueprints 的支持及自定义路由

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等

sails 框架下的 orm 实现 - Waterline

上一篇介绍了 使用sails框架快速搭建项目 今天和大家分享 sails 另外一个重要的功能模块: sails的ORM实现 什么是ORM Java 中的 Hibernate 框架的一个重要功能便是将数据库中的数据与 Java 中的对象进行映射,被称为 ORM (Object Relational Mapping), Node.js 里常用的 Mongoose ,便是将 MongoDB 的文档,映射为 JavaScript 的对象, 而 Waterline 可以看做是一个支持多种数据库的 Mongoose ,使得可以用一样的代码来实现对多种数据库的操作,无论是关系数据库还是文档数据库,都可

node.js 环境下使用 sails 框架搭建服务

什么是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 框架

微信第三方活动 关注微信公众号才能参与

#产品要求:必须先关注公众号才能参与活动 ###上面需求涉及到的几个点: 1.access_token中继服务 2.第三方页面授权 3.获取微信用户信息 前面有一篇 node.js定时获取access_token 那么根据此博文我们可以解决 access_token 中继服务的创建 第三方页面授权 前提:必须微信服务号 且 第三方站点域名设置为微信管理后台安全域 获取微信用户信息 前提:微信管理后台开通开发者模式,且微信回调接口调试无误. 如何在页面授权时判断用户是否关注 首先拉取当前公众号下所有关注用户 (存储用户 openid ) 然后根据存储的所有用户openid 去获取

node.js 微信开发 提交菜单

前面连续分享2篇关于微信开发的文章. node.js 定时获取 access_token 使用 wechat 开发微信回调接口 今天分享 node.js 开发微信菜单 前提: 1.首先是切换到了开发者模式 2.微信管理后台已经授权自定义菜单,如下图例是没办法提交菜单的 当你的微信从编辑模式切换到开发者模式时, 之前你手动定义的关键词回复, 手动创建的菜单全部失效. 微信自定义菜单 说白了非常简单. 微信自定义菜单就是一次 POST 请求. 请求接口: https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TO

node.js 下使用 wechat 开发微信接口

node.js 开发微信系列二 wechat 开发微信回调接口 上一篇我们介绍了 node.js下定时获取access_token 这里可能有个疑问,node.js 开发微信回调接口和定时获取 access_token 有关系吗? 其实没有必然的关系,通过微信回调接口我们可以方便的获取到交互者的 openid 但是,如果你想根据 openid 获取当前交互者的用户信息时,就必须要 access_token 了. 今天我们只谈 wechat 如何使用,获取用户详情在以后的博文中介绍. wechat 微信公共平台消息接口服务中间件 github地址: https://github.com/

node.js 微信开发 定时获取access_token

什么是access_token access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效 [来自微信文档] 当你的多个微信开发相关服务并存时,多个服务各自去获取 access_token ,最后导致其中一些服务会不能正常访问. 所以这种情况下,应该设置一个获取 access_token 的中控服务器. 因为 access_token 的有效期为 2个小时,

node.js 调用 shelljs 接收 stdin 输入输出

#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

npm 不加sudo 执行失败

随笔记录一个小问题, npm 安装开源包的时候,你可能碰到这样的情况,无写入权限. ***必须加上 sudo *** 才能执行成功. 无 sudo ➜ /Users/zhangzhi >npm install -g jslint npm ERR! tar.unpack untar error /Users/zhangzhi/.npm/jslint/0.9.6/package.tgz npm ERR! Darwin 15.3.0 npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "jsli

Node.js 中实现的ES6 新特性

ES6 的发布,给 JavaScript 开发带来了很多实实在在的特性,那么对于 node.js 的开发者而言,V8对于ES6新特性的支持有哪些? 如何查看node 的新特性 process.versions ➜ /Users/zhangzhi >node process.versions { http_parser: '2.5.0', node: '4.2.4', v8: '4.5.103.35', uv: '1.7.5', zlib: '1.2.8', ares: '1.10.1-DEV', icu: '56.1', modules: '4

通过 pm2 部署 node.js 项目

我们如何用 pm2 把 node.js项目 部署到服务器 安装 pm2 全局安装 ➜ /Users/zhangzhi >sudo npm install -g pm2 初始化 pm2 配置文件 ➜ /Users/zhangzhi >pm2 ecosystem ------------- Looking for a complete monitoring and management tool for PM2? Check out: _

node.js 单元测试 Unit Test 及 程序持续集成 CI 工具

JavaScript 单元测试、更因其执行环境复杂无比、自动化门槛超高. 目前 JavaScript 越来越复杂庞大,其实更需要单元测试来确保品质. 但是由于 PhantomJS、Travis CI 等工具… 写 JavaScript 单元测试变得轻松许多. 今天来聊一下关于 javascript 单元测试 Unit Test 及 CI 持续集成工具. Unit Test 单元测试 我们常写一些工具类的 JavaScript Function、甚至包装成组件、以方便未来重复使用. 单元测试 (Unit Test) 是另外一份代码、用来检查这些代码的正确性. 例如过去我们得替自己撰写 t

[随笔] http-server 快速创建node.js 静态服务器

说到node.js 创建服务器,首先想到 express 之前和大家分享过 关于http-server快速创建node服务 http-server 首先需要 全局安装 http-server npm install -g http-server http-server 启动 http-server -a 127.0.0.1 -p 7070 上面的一句命令启动了一个node.js 的静态服务器. 监听本地 7070 端口. 静态目录就是当前运行 命令所在的目录 如果你的当前项目中存在 public 文件夹,那么默认静态目录会指定到 public 如果没有 public

pormise Q 使用文档简单描述

关于 promise 介绍和使用方法 请点击浏览其他博客. 今天分享的是针对 Q 开源包 api 的简单白话版本. promise.then(onFulfilled, onRejected, onProgress) then 回调接收 3个参数 ,分别是 成功时,失败时,持续读取状态时 前两个函数对应Promise的两种状态的回调函数fulfiled 和 rejected,第三个函数用于处理进度信息 promise.catch(onRejected) promise 遇到异常时执行 promise.then(undefined, onRejected) 当catc

NPM如何发布node模块到社区

如何把自己写的 node.js 模块发布到 npm 开源社区 有下面几个前提条件: 你需要是 npm 社区注册的会员 如果你还没有,点击下面的链接注册 https://www.npmjs.com/ 你的开发环境需要 安装node.js 和 npm 创建repository 接下来我们需要创建module所需的repository,默认你拥有一个github账号(如果没有自行解决),这个repository用来托管我们module的代码,并方便用户报告bug,最重要的是可以让其他开发者向module贡献代码,这也是乐趣所在。 初始化package.json 接下来我们创建pa

promise Q.all 方法使用 及 spread 分散返回结果

promise 规范 点击查看此博文了解 promise规范让你解脱callback回调噩梦 promise 规范 开源包 Q 使用 点击查看博文 node.js下如何使用q 当promise 遇到 forEach 当你的一个业务需要执行多个异步方法时,最后统一返回 计数器法 顾名思义,用一个计数器来统计遍历/调用函数的次数,最后一次统一返回结果 假设我们有一个 实现 promise 规范的函数 test var test=function(a){ var defer=Q.defer(); defer.resolve(a+1); return defer.p

node.js 下 promise 开源包 q 使用

promise 规范 可以让你从繁杂的 callback 中解脱出来. 如果我们在传统的 callback 中执行 5个 步骤,应该是下面这样的: setp1(function(res)){ setp2(function(res)){ setp3(function(res){ setp4(function(res){ setp5(function(res){ //终于执行完了 }); }); }); });

React Native 中文版 安装 入门 环境部署

要求 OS X - 当前仅支持 OS X 推荐使用 Homebrew 的方式来安装 nvm,watchman 和 flow。 安装 Node.js 4.0 或者更新的版本。 使用 Homebrew 来安装 nvm 或者参考 它的安装指南。 接着运行 nvm install node && nvm alias default node, 它可以让您安装最新版本的 Node.js 并设置您的终端,所以你可以通过键入 node 来运行它。使用 Nvm 可以让您安装多个版本的 Node.js 并且在它们之间轻松切换。 npm 的更新之处。 brew 安装 wa

React Native 学习 安装 Android 运行环境

React Native 安卓应用程序所需要的开发环境的基本安装步骤 安装和配置 SDK 安装最新的 JDK. 安卓 SDK brew install android-sdk 将它添加到 ~/.bashrc, ~/.zshrc 或者任何其他您的 shell 所使用的路径: export ANDROID_HOME=/usr/local/opt/android-sdk 启动一个新的 shell 并且运行 android ➜ /Users/zhangzhi >android Android SDK 生成工具版本 23.0.1 Android 6.0 (API 23

安装 nrm 自由切换 npm 源 国内镜像提升下载速度

之前写了一篇博文,关于如何把 npm 换到国内镜像员的博文,如下: 给电脑换 npm 国内镜像员 cnpm 为什么要换,你懂的! 今天给大家推荐一个 npm 开源包 nrm 基于 npm ,全局安装以后,你开源无缝快速切换几个源,提高下载速度,拒绝 loading ! 安装 npm install -g nrm 开源地址 https://github.com/Pana/nrm 使用 查看帮助 ➜ /Users/zhangzhi/code >nrm -h Usage: nrm [options] [command] Commands: l

node.js webkit 项目 开启node.js 桌面应用

为什么是 node.js 桌面应用 准确的说,这只是一个浏览器, node-webkit 项目是 chromium 和 node.js 搭建起来的本地运行时环境. 我们知道node.js 是javascript 在服务器端通过强大的 V8 引擎实现的. chromium 内置了 V8 引擎 所以 node-webkit 就这样结合起来了. 回到刚才的问题,为什么说是桌面应用 Node支持的与操作系统交互的功能,文件系统,网络 , 操作系统资源等, 以及Node之上的第三方库都可以在node-webkit中进行使用 所以他很像是一个桌面级应用,但是又有区别 和传统桌面应用不

回到顶部