Write the Code. Change the World.

10月 17

在用webpack打包的时候,所打包的文件,会经常使用到 module.exports,exports,export和export default,import与require 这些语法。看起来眼花缭乱,其实,都是有迹可循的。

基本问题

  1. module.exportsexports 是属于 CommonJS 模块规范。
  2. exportexport default 是属于 es6 语法。

  3. 同样 importrequire 分别属于 es6CommonJS

  4. module.exportsexportsexportexport default 都是导出模块。 importrequire 则是导入模块。

module.exports 和 exports 的区别与联系

Node应用由模块组成,采用CommonJS模块规范。根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。

阅读全文 >>

10月 17

前边

es6 语法使用也越来越多了,本来已经落后了,再不学习就更落后落后了。

es6模块设计思想更是突出。es6模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。es6模块加载是静态加载,使得静态分析成为可能。有了它,就能进一步拓宽 JavaScript 的语法,比如引入宏(macro)和类型检验(type system)这些只能靠静态分析实现的功能。

es6模块自动采用严格模式,不管你有没有在模块头部加上”use strict”;。

既然是模块,模块功能怎么构成呢。模块功能有 exportimport 两部分构成。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。

export

一个模块,就是一个独立的文件。通过export,将内部的变量,对象,方法,类输出给外部。并且export在顶级使用,如果在块内部使用就会报错。

export有以下一些规定。

  1. export 必须在顶级使用。
  2. export命令规定的是对外的接口。必须用{}包裹起来,或直接 export。

  3. export 输出接口与外是动态绑定的。 无论改变哪个,该数据都会改变。

  4. 既然export是输出接口,就有一个接受接口。接受用import,也需要要用{}包裹起来。

  5. 一个模块中,可以有多个 export。

  6. export可以使用 as 关键字重命名。

阅读全文 >>

9月 21

vue

https://cn.vuejs.org/

https://www.awesomes.cn/

http://element.eleme.io/#/zh-CN/

https://www.iviewui.com/

https://n3-components.github.io/N3-components/component.html

bootstrap + vue

http://yuche.github.io/vue-strap/

https://bootstrap-vue.js.org/

https://uiv.wxsm.space/getting-started/

react

https://ant.design/index-cn

css study

http://cssreference.io/

js effects

https://threejs.org/

https://github.com/iview/iview-doc

https://threejs.org/examples/?q=waves#canvas_particles_waves

https://segmentfault.com/q/1010000010716445

阅读全文 >>

9月 04

很多框架,网站,实现的模态窗口体验不是那么完美。不过,知乎的模态窗口却是很完美的。比如登录。知乎的模态窗口实现了以下几点:

  1. 弹出模态窗口后。所有滚动条都隐藏(如果有的话),并且鼠标滑轮,无论怎么滚动,被半透明遮挡在下边的内容岿然不动。
  2. 弹出模态窗口后。窗口在水平和垂直方向是都是居中的。

  3. 关闭模态窗口后。滚动条功能恢复。

Demo: https://api.qiubg.com/demo/vnmodal

gitHub: https://github.com/vini123/vnmodal

阅读全文 >>

8月 30

在nodejs中使用express来搭建框架可以说是非常的简单方便,但是一般默认创建的都是http服务器,也就是只能通过http协议进行访问。如今https已经是发展趋势,我们应该顺应时代的潮流。这里,将记录下这个的配置过程。

生成证书文件

先进入到项目的目录。

cd /alidata/service/node.js/server/im/

1. 生成私钥key文件

openssl genrsa 1024 > private.pem  

阅读全文 >>

8月 29

Node.js 官网下载地址:https://nodejs.org/en/download/

注意,这里分两种版本,LTS(长期支持,成熟可靠)和Current(稳定版,最新特性)。选择合适的版本安装。

下载好Mac对应的版本。然后安装。安装完成后,会出现下边提示。

Node.js was installed at

   /usr/local/bin/node

npm was installed at

   /usr/local/bin/npm

Make sure that /usr/local/bin is in your $PATH.

确定,安装完成。

使用

安装完成后,可以在终端中查看版本。

node -v
npm -v

使用国内的淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

阅读全文 >>

8月 29

node.js的mysql模块比较多,有mysql,mysqli,还有mariasql以及node-mariadb。针对服务器的环境,使用对应的模块。因此,踩过不少坑。

环境差异

服务器装的mysql环境,php7或php7以下

安装对应模块:

npm install mysql  // php7以下
npm install mysqli // php7

阅读全文 >>

8月 13

安装redis

brew install redis

安装成功后,有如下提示

zhoulindeMacBook-Pro:~ zhoulin$ brew install redis
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/bottles/redis-4.0.1.sierra.bottle.tar.gz 

######################################################################## 100.0%
==> Pouring redis-4.0.1.sierra.bottle.tar.gz
==> Caveats
To have launchd start redis now and restart at login:
  brew services start redis
Or, if you don't want/need a background service you can just run:
  redis-server /usr/local/etc/redis.conf
==> Summary
  /usr/local/Cellar/redis/4.0.1: 13 files, 2.8MB
zhoulindeMacBook-Pro:~ zhoulin$ brew services start redis
==> Successfully started `redis` (label: homebrew.mxcl.redis)

然后按照提示,启动redis

开机自启动

sudo cp /usr/local/opt/redis/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/
sudo launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist 
sudo launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist #停止使用

阅读全文 >>