Nodejs 通过 fs.createWriteStream 保存文件

工作中难免会遇到处理大文件的时候,有这种stream的处理方式,就不需要一次处理太大的文件,从而导致内存不够用,或者内存占用太多。

fs.createWriteStream 似乎不会自己创建不存在的文件夹,所以在使用之前需要注意,保存文件的文件夹一定要提前创建。

const path = '/xxxxxx/ddd/';

if (!fs.existsSync(path)) {
  fs.mkdirSy
...

NodeJs 版本8.5 体验experimental-modules

最近NodeJs 版本 8.5 已经支持了 ESM module,感觉之前的babel编译可以放弃不用了,不过这个只是一个实验性的,具体稳定与否,是否可以上生产环境,还是需要测试一段时间的。

体验环境搭建:

NodeJs: v8.5.0

依赖包:

  "dependencies": {
    "axios": "^0.16.2",
    "koa": "^2.3.0",
    "koa-router
...

Vim 之 vim-autoformat 自动切换使用本地或全局eslint

最近使用vim变成javascript程序,自己的一些写代码的习惯并不是很好,需要经常通过格式化程序帮助自己来格式化代码,

vim-autoformat这个插件肯定是少不了,问题就是如何才能通过eslint来格式化代码,毕竟越来越多的高手都在用eslint来规范自己的代码,网上有些文章说的就是如何配置全局,但是我不喜欢全局配置,毕竟不是每个项目的内容都一样,而且版本可能也有要求,因地制宜才好,于是研

...

Yii2 如何在modules中添加验证码

最近玩了下Yii2的验证码部分,正常的逻辑都可以走通的,网上的例子也是没有问题的,关键有问题的部分是在module中使用的时候,分享给大家,往下看之前可以去看看正常情况下是如何使用的。


controller部分的代码,这里的跟网上的都类似

public function actions()
{
    return [
        'captcha' => [
            'class
...

React中上传图片到qiniu(2017-05-10更新)

之前有写过类似的一篇文章,有位同学突然找来解惑,发现自己采用了另外的一个方法,这里也分享下,希望对使用reactjs的同学有帮助。

逻辑思路是这样子的,在componentDidMount中实现更新dom的操作,异步加载需要的资源文件,然后在加载完后实现qiniu的初始化操作。这里就不需要在webpack或者其他打包工具中去引入qiniu的包文件,导致打完包的文件过大了。

我这里使用了nodejs的库

...

node.js 应用性能分析

node.js 从 4.4.0 版本开始内置了 profiler, --prof 命令选项运行应用会在当前目录生成性能日志文件。

简单记录下使用方法

运行的时候加上 --prof 参数

node app.js --prof

运行后会在当前目录生成一个类似:isolate-0x1d1e1b0-v8-10041.log这样的文件

执行如下命令来分析程序的性能

node --prof-process isolate
...