使用微信开发前准备

  • 微信公众开发者平台
  • 注册开发者账号获取权限;
  • 安装包: wechat, wechat-oauth

微信公众平台操作

nodejs常用的wechat包

  • node-wechat, 基本的功能操; token需要手动获得
  • wechat-api, 较多的功能操作,包括获取js-sdk操作需要的配置参数; token会自动获得并缓存
  • wechat-oauth, OAuth授权操作; token和AccessToken都会自动获得并缓存

实际网页授权获操作

  • 产生的链接结构
//例子

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
  • 首先在测试页面的网页账号中填写域名,注意格式;

  • 在后端route中填写token

module.exports = (app)->
router = app.loopback.Router()
wechat = require 'wechat' router.get '/', wechat('abs', (req, res, next)-> next())
router.post '/', wechat('abs', (req, res, next)-> next()) return router
  • 最后在在测试账号的配置接口信息填写域名和token

  • 注意要在关注该测试账号的的账号中才能调用获取其用户信息

使用promise

  • 例子
var time = function(value) {
new Promise(resolve, reject) {
if(..) {
resolve(value)
} else {
reject(value)
}
}
} time('valuie')
.then(function(){
...
}, function(){
....
})
  • 在nodejs中使用: Promise = require 'bluebird'

远程服务器部署

关于证书权限

  • 角色: root, group, other
  • 权限: r:4, w:2, x:1
  • 修改权限,如给root只读权限,其它角色不给权限: chomd 400 <证书路径>

连接远程服务器

  • ssh -i <证书路径> [用户名/密码]@域名

载入github上的项目

  • 使用https开头的连接
  • 进入项目,安装依赖包

使用pm2

  • 如果上面的连接方式时需要密码的,则可以用strongloop的pm;
  • 安装全局pm2包
  • 显示项目信息: sudo pm2 ls/list
  • 停止项目: sudo pm2 stop <app_name/id>
  • 重新启动项目: sudo pm2 restart<app_name/id>
  • 打印日志: sudo pm2 logs
  • 删除项目: sudo pm2 delete <app_name/id>

pm2生成自动重启项目的脚本

$ pm2 startup
# auto-detect platform
$ pm2 startup [platform]
# render startup-script for a specific platform, the [platform] could be one of:
# ubuntu|centos|redhat|gentoo|systemd|darwin|amazon

linux下的一般操作

  • 路径操作: cd <file_path>; cd ../
  • 删除文件夹:rm -rf example
  • 显示进程:
    • 显示当前所有进程:ps aux
    • 显示并抓取特定的进程: ps aux | grep node/mongod //最左边的为进程id
    • 显示ps的帮助信息: man ps
  • 消灭进程: kill
  • 查看端口: netstat -anpnetstat -anp
  • 查看网络服务: curl http://localhost:3000

安装mongodb

  • 为了方便,可以将db建立在项目当中
  • 建立: mkdir -p data/db
  • 运行: mongod --dbpath ./data/db / service mongod start --dbpath data/db

运行的程序

  • 隐藏到后台ctrl z
  • 显示后台运行程序: bg
  • 打开后台运行程序: fg <job_id> //如果没有加id,默认打开最近的

使用远程服务器

  • 在项目中的datasources.json文件中配置远程数据库的host,port进行修改
  • 远程数据库要创建账户,并且在datasources.json文件中进行配置

导出mongodb数据

  • 例子mongoexport -d development -c user -o users.json

    mongoexport -d development -c user --csv -f id, nickname -o users.csv

mongodb的可视化工作推荐

运行项目

  • sudo PORT=80 pm2 start <server路径> //这里pm2其实相当于npm ; 发布的时候添加 NODE_ENV=production

查询远程服务器的id:ping <域名>

在linux上的常见安装:

ssh远程登录

  • 有证书的情况下:ssh -i xxx.pem username@example.com
  • 没有证书: ssh username@xx.xx -p xxx

远程服务器拷贝文件到本地

  • scp -P 端口 username@XX.XX:[/home/....] [./]

退出远程服务器

  • exit

简易的压力测试

  • ab -n 1000 -c 10 http://localhost:3000/

    • n 总共发送请求数;

      *c 并发数;

使用mocha测试

  • mocha --compilers js:babel/register : 在babel模式下测试,默认查找test文件夹,注意此时全局不要安装babel;
  • ./node_modules/.bin/mocha --compilers js:babel/register;

loopback 03的更多相关文章

  1. Davinci DM6446开发攻略-UBOOT-2009.03移植2 nand flash的烧写

      很长一段时间没有更新博客了,是因为要推出新开发方案和做好客户服务工作,忙得不易乐乎.有关DAVINCI U-BOOT的移植,以前写过一篇u-boot-1.3.4(2008年的),其实和这个u-bo ...

  2. Docker系列03—Docker 基础入门

    本文收录在容器技术学习系列文章总目录 1.概念介绍 1.1 容器 1.1.1 介绍 容纳其它物品的工具,可以部分或完全封闭,被用于容纳.储存.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. ...

  3. linux(03)基础系统优化

    Linux之基础系统优化 Linux基础系统优化 >>> https://www.cnblogs.com/pyyu/p/9355477.html Linux的网络功能相当强悍,一时之 ...

  4. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  5. Java多线程系列--“JUC锁”03之 公平锁(一)

    概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40)一. tryAcqu ...

  6. iOS系列 基础篇 03 探究应用生命周期

    iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...

  7. javaSE基础03

    javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...

  8. UML大战需求分析——阅读笔记03

    读<UML大战需求分析>有感03 状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图 ...

  9. 2016-1-28 图解HTTP(03)

    6.2.5 非HTTP/1.1首部字段        不限于RFC2616中定义的47种首部字段,还有Cookie.Set-Cookie和Content-Disposition等在其他RFC中首部字段 ...

随机推荐

  1. 【QT】C++ GUI Qt4 学习笔记2

    Go To Cell 利用QT Desinger做好界面后加入的代码有 gotocelldialog.h #ifndef GOTOCELLDIALOG_H #define GOTOCELLDIALOG ...

  2. 【数据结构】DFS求有向图的强连通分量

    用十字链表结构写的,根据数据结构书上的描述和自己的理解实现.但理解的不透彻,所以不知道有没有错误.但实验了几个都ok. #include <iostream> #include <v ...

  3. Quartz结合SPRING多任务定时调用

    定义两个被调度的类 public class QuartzJob { public void work() { System.out.println(Spring Quartz的任务调度1被调用!&q ...

  4. NodeVisitor的使用-遍历Geode节点并在它与父节点之间添加一个LOD节点

    #include <osg\NodeVisitor>#include <osg\MatrixTransform>#include <osg\PagedLOD>#in ...

  5. 如何查看设备的 UDID

    手机连接上电脑,打开 Xcode,确认手机已连上: command+shift+2,就可以查看到 UDID 了:

  6. CSS设置超出指定宽度自动换行

    一.背景 最近项目中有用到在div中显示用户反馈的信息,是指定宽度的div,超出要自动换行,开始写好后感觉应该没什么问题,后来自己随便输入测试数据的时候发现:如果是纯字母或者是纯数字就会出现超出了也不 ...

  7. August 29th 2016 Week 36th Monday

    Every has the capital to dream. 每个人都有做梦的本钱. Your vision, our mission. That is an advertisment of UMo ...

  8. Java使用JDBC连接MySQL数据库

    1.引用 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写 ...

  9. 关于logcat日志

    最近学习android,碰到了logcat,个人总结一下. 当不出日志是解决办法: ProjectMenu---后台设置----LOG设置---LOG开关 Logcat(deprecated)和Log ...

  10. RST_n的问题

     有一个灰常郁闷的问题... module CLK_Generater(                    input        CLOCK_100,                    i ...