Mongodb副本集配置

##MongoDB副本集

测试配置MongoDB副本集,首先找3台测试服务器,或者一台服务器上,跑3个MongoDB实例也可以。我这里以3台服务器来做实验。

3台服务器IP

192.168.56.8

192.168.56.9

192.168.56.10

每台服务器上的MongoDB启动使用--replSet test 或者在mongodb.conf里面配置

Mongodb数据库介绍

什么是MongoDB?

官网地址:

https://www.mongodb.com/

MongoDB 是由C++语言编写的编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统。

主要特点

  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
  • MongoDB使用了BSON存储数据和网络数据交换,BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象
  • 可以在MongoDB记录中设置任何属性的索引 (如:FirstName=”Sameer”,Address=”8 Gandhi Road”)来实现更快的排序。
  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
  • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
  • MongoDB支持各种编程语言:Nodejs,RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  • MongoDB安装简单。

JSON.stringify()注意事项

JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串

但是里面几点需要注意

关于序列化,有下面五点注意事项:

  • 非数组对象的属性不能保证以特定的顺序出现在序列化后的字符串中。

  • 布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值。

gm图片处理

项目中需要对上传的图片做下处理,比如把原图做一个缩略图,加水印等功能,我使用了gm模块

模块地址: http://aheckmann.github.io/gm/docs.html

这个模块支持:

GraphicsMagick and ImageMagick

因为我机器上装的是ImageMagick,所以我用的是ImageMagick

使用方式:

var gm = require('gm'); 
var imageMagick = gm.subClass({ imageMagick: true });

gm的文档写的比较清楚,需要什么命令查下项目地址,基本上都可以找到,不过上面的项目地址不是最新的,有些命令在文档上并没有找到,只能看下源码了

express设置跨域

今天碰到一个问题,服务器需要开启跨域,给浏览器提供接口,网上搜索了下,有了如下方案:

项目使用的是express来做的,具体代码如下:

app.all('*',function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');

    if (req.method == 'OPTIONS') {
        res.send(200); /让options请求快速返回/
    }
    else {
        next();
    }
});

将上述代码放在路由处理以前,这样就可以了。

对于浏览器来说,当请求的接口的地址与当前页面的地址不一样的话,就会产生跨域的问题,当请求的时候,会先发一个options请求,如果这个请求通过了,再执行真正的请求

支付宝开发问题记录

项目中要有支付功能,所以就用到了支付宝支付,然后查看它的文档,已经迷在里面了

我要用到即使到账,手机网站支付,快捷登录

文档地址:

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.fV5JA2&treeId=193&articleId=105333&docType=1

我用的是历史接口 有相应的demo

mongodb备忘

要把工程从一个服务器迁移到另外一个服务器,因为这个工程使用的数据库是monogdb,所以刚才又重新安装了一边mongodb

1.安装

官方安装地址: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

按照他提供的方案步骤来,前两步没有问题,到第三步,

sudo apt-get update

最后显示,更新失败,试了好多次,都失败,突然想到很早以前装的时候也是这个问题

https://github.com/alibaba/mirrors/issues/34

一种必须关注公众号才能参加活动的方案介绍

到现在公司的微信公众号已经做了大概4个活动了吧以此来吸引粉丝,为了拉来更多的粉丝,领导要求参加活动的用户必须关注我们的公众号才行

研究了下微信公众平台提供的文档,没有提供相应的接口来判断用户是否关注了公众号

我们的公众号类型是订阅号,所以不具有使用微信登录接口的功能,所以借助微信提供的接口来实现这个功能的方案行不通了。

react-native flexbox备忘

前段时间尝试react-native,然后布局用的基本上都是flex

这里做下备忘

webpack jquery + jquery-ui

参考文章:

http://webpack.github.io/docs/usage-with-bower.html

https://github.com/webpack/webpack-with-common-libs

基于项目:

https://github.com/MarshalW/react-proto/tree/m5.4

改项目中要用到jquery + jquery-ui,以前的方式是

1.使用bower install安装所需的库,主要是jQuery和jQuery UI

2.将jQuery UI等库全局的方式加入到html页面上,类似这样: