• loopback 03


    使用微信开发前准备

    • 微信公众开发者平台
    • 注册开发者账号获取权限;
    • 安装包: 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;
  • 相关阅读:
    SVN服务器使用和搭建
    jenkins以.war包安装配置教程
    Django数据库与程序交互
    工作中常用到的linux命令
    js获取元素属性
    Jenkins利用插件持续集成的思路及安装
    web前端面试第一次[javascript函数和方法的区别]
    web前端面试第一次[定时器]
    linux卸载mysql
    mysql启动错误:Starting MySQL... ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4383186.html
Copyright © 2020-2023  润新知