webstrom 注册码 通用

webstrom7\webstrom8\webstrom9\webstrom10

注册码 

一、

luqidong

===== LICENSE BEGIN =====

48920-12042010

000026V3OvOav!JJr4dUsEYZZ55vMQ

SU!vT56YUd6VpR1kLaRdshdydhY6uq

aXSm"QR7zGWkmTSn!grKut2T"IJE4v

===== LICENSE END =====

阅读详细 »


fiddler使用教程(二) 断点调试

fiddler的断点功能可以截获发送或者接收到的请求,然后更改信息方便我们的调试。对于前端开发工程师来说对发送或者对接受的请求做处理是再正常不过的了下面用fiddler做一个例子来讲解下如何用fiddler做断点调试。

1、断点的位置在界面的底部

点击一下会出现一个箭头朝上的标记,在点击下就会有抄下的标记

第一个是断点的发送请求出去之前,第二个是数据返回的时候截取。

2、我们以www.ly.com为例子:

点击这几个tab标签会请求异步替换掉下面的内容。

我们点击海岛的时候请求的异步里面有2个核心参数一个是method 一个是 typeName 。先断点断在发送求情的时候 

然后点击一个tab标签 比如欧洲:如下图

第一个是断点到返回状态,第二个是直接走完,第三个是传到服务器的一些值,我们在这里可以进行更改,然后点击Run to Completion 来完成这个请求,或者点击工具栏上的go按钮来走完全部的请求。当然我们还可以修改请求的头部信息,比如传过去的cookies等。

3、截断请求返回的内容进行修改

由于我们这是返回之后的信息修改,所以返回之前的头信息是无法修改的,点击右侧Texview 就是查看返回的内容,然后在这里是可以修改的. 还有点击右下角在 notepad里面查看这样看起来更方便,修改完之后点击 Run to Completion 走完整个请求的过程,然后查看下状态.


这只是个简单的例子,大家可以举一反三。


未完待续


fiddler使用入门(一)

一、主要功能

1、截获http或者https请求。
2、查看截获的请求
3、伪造请求 服务器到客户端  客户端到服务器
4、测试网站性能
5、解密hhtps的web会话
6、第三方扩展

二、工作原理


在客户端和服务器之间设置一个代理服务器 修改服务器和客户端之间的请求。
代理模式:流模式 和 缓冲模式。 流模式是实时将http的请求返回给我们的应用程序。缓冲模式是等所有的http全部准备好才返回给我的应用程序。缓冲模式可控制服务器的响应。流模式更接近于浏览器本身的行为。
三、实用场景
1、配置host。生效块。---比SwitchHosts好多了
2、前后端的接口调试。---发送开发提供的接口地址参数等等
3、线上的bugfix  ---就是的把线上的脚本fiddler到本地修改本地调试线上看效果。
4、性能优化分析。
四、工具界面介绍
1工具栏
依次是:1)添加备注。在请求后面添加备注 具体干嘛自行脑补。
             2)回放功能 重新发送该请求。亦可用R键 快捷键。前提是你要选中该请求。
             3)清空监控面板 有几个选项 全部清空也可在命令输入行里面输入 cls
             4)断点继续按钮  配合断点使用点击红色区域实现断点,可以发送请求时断点,接受响应时候断点。
             5)流模式和缓冲模式切换
             6) 将http里面的东西解压出来
             7)需要保持的会话数,就是监控框里面展示的最多条数
             8)大概意思就是点击然后移动到其他应用窗口比如chrom浏览器,这样就只会显示chrom浏览器的请求了
             9)查找功能不多说
             10)对当前回话的保存
             11)保存截图 点击之后5秒保存
             12) 计时器 
             13) 快速启动一些浏览器   
             14)清除ie缓存快捷键
             15)编码解码文本内容 很有用 比如百度搜索的关键字被编码了  用这个可以解码
             16) 将右侧面板做成浮窗
2、状态面板
            1) 黑色的部分是控制台,可以输入快捷命令 直接输入help可以跳转到快捷键页面查看帮助,alt+q是光标快速定位到控制台
            2)控制fiddler是否工作
            3)过滤回话来源比如点击webBrowser 这样fiddler就只会监控浏览器的回话请求(这里指的是ie)
            4)回话数量
3、监控面板
           1)记录值分别是  状态码  、 协议 、请求的主机地址(域名)、 服务器地址、 URL。
           2)Statistics数据统计 一个请求的性能方面的指标 一个会话的统计信息 可以为优化提供依据
           3)Inspectors 对请求进行解包。比如头 cookies 返回等 具体自己看脑补。
           4) AutoResponder最常用的功能 文件代理 本地文件替换线上文件
           5)Composer后端接口调试  不需要写任何js 就可以调试后台接口
           6)Timeline 查看请求性能 使用方式 选择一系列会话查看


五 、 实战

           一、host 

有点就是 立马生效 管理起来简单

 二、文件替换  AutoResponder

   不仅仅是文件 还能把文件替换成响应 比如延迟5妙等

未完待续


PhantomJS 入门(一)

Urna Semper
陆启东
2015年6月21日


PhantomJS 入门
PhantomJS is a headless WebKit with JavaScript API.


     我想我不需要说服你测试你的javascript代码是一个好习惯,但是有时候在dom里面测试你得javascript实在很乏味,也就是说你必须在浏览器里面测试你得代码而非命终端里面。这样真的对么?显然不对,请看这里PhantomJS


     那么PhantomJS到底是什么呢?这里我们引用下官网的一句话
PhantomJS is a headless WebKit with JavaScript API.
    你懂的,Webkit是Chrome,Safari和一些小众浏览器的引擎,所以说PhantomJS是一个浏览器但是又不是浏览器,也就是说通过它可以实现一个也没一个网页但是你并不需要打开它,或者这个让你听起来很困扰,所以你只要记住它类似于一个浏览器但是在控制台中使用就行了,哦了那我们来简单看下一个例子,当然首先你需要安装好PhantomJS。
     安装PhantomJS
     安装PhantomJS这实在是太简单了,只需要吧程序下载下来放到你的控制台环境变量路径里面,下载页面是PhantomJS download page。进去选择你当前系统的包,然后把文件复制到你得控制台系统路径里面。
     如果你是Mac OS X的话那更简单啦,直接运行:
    brew update && brew install phantomjs
     查看你是否已经安装好了PhantomJS
    phantomjs --version


简单的例子

    让我们来看一个简单的例子

    simple.js

console.log("we can log stuff out.");
 
function add(a, b) {
    return a + b;
}
 
conslole.log("We can execute regular JS too:", add(1, 2));
 
phantom.exit();


我们来用下面的命名来运行它

phantomjs simple.js

运行结果

我们在控制台看到了两行输出。当然这个非常简单,但是它反映出一点:PhantomJS可以像一个浏览器那也处理javascript,然而这段代码并没有PhantomJS-specific 代码,但是看最后一行,这个很重要,因为所有的phantomjs执行完之后都要退出,比如我们想再关闭里面写个回调。


加载页面

phantomjs可以帮助我们打开一个页面,并且执行javascript。

例如: script.js

var page = require('webpage').create();
 
page.open('http://www.ly.com', function (s) {
    console.log(s);
    phantom.exit();
});


这里我们利用webpage模块来创建一个webpage对象,然后使用open的方法打开它,里面有2个参数第一个是url,然后就是回调函数,回调函数里面,里面可以输出返回的状态,如上代码执行之后我们在控制台里面看到的应该是"success"。

    让我们来做些更有趣的事情,我们打开页面然后执行一段脚本看看:

page.open('http://www.ly.com', function () {
    var title = page.evaluate(function () {
        var posts = document.getElementsByClassName("logo");
        posts[0].style.backgroundColor = "#000000";
        return document.title;
    });
    page.clipRect = { top: 0, left: 0, width: 600, height: 700 };

    page.render(title + ".png");

  未完待续



手机站边框0.5px

.background-t-1{  /*通过设置背景色的方式*/
    background-image: -webkit-linear-gradient(bottom,transparent 50%,#dcdcdc 50%);/*使用背景色注意一下这个颜色,统一是使用dcdcdc。如果需要用其他颜色和小顾老师确认下*/
    background-image: linear-gradient(to bottom,transparent 50%,#dcdcdc 50%);
    background-size:100% 1px;
    background-repeat: no-repeat;
    background-position: bottom;
}
.border-1{ /*左右边框*/
    border-width: 0 1px 0 1px;
    border-image: url(http://img1.40017.cn/touch/public/borderImage/border-dc-abeam.png) 0 2 stretch;
}
 
.background-b-1{
    background-image: -webkit-linear-gradient(top,transparent 50%,#dcdcdc 50%);
    /*先透明和dcdcdc是因为不倒一下的话左右边框和这个边框会有.5px的间隙*/
    background-image: linear-gradient(to top,transparent 50%,#dcdcdc 50%);
    background-size:100% 1px;
    background-repeat: no-repeat;
    background-position: top;
}
 
.background-t-2{
    background-image: -webkit-linear-gradient(top,#dcdcdc 50%,transparent 50%);
    background-image: linear-gradient(to top,#dcdcdc 50%,transparent 50%);
    background-size:100% 1px;
    background-repeat: no-repeat;
    background-position: top;
    padding-top: 1px;
}
.border-2{ /*上下边框*/
    border-width: 1px 0 1px 0;
    border-image: url(http://img1.40017.cn/touch/public/borderImage/border-dc.png) 2 0 stretch;
}
 
/*全部通过背景实现*/
/*
<div class="bg-border"></div>
 
*/
.bg-border{
    width: 15px;
    height: 15px;
    background-image: linear-gradient(to bottom,transparent 96.9%,#dcdcdc 3.1%),linear-gradient(to top,transparent 96.9%,#dcdcdc 3.1%),linear-gradient(to left,transparent 96.9%,#dcdcdc 3.1%),linear-gradient(to right,#f5f5f5 96.9%,#dcdcdc 3.1%);
/*这里可以根据需求显示哪几个边,(这个方法有个缺陷,必须要定宽度 或者高度,根据实际情况决定,因为每一个边都是根据宽度或者高 计算比例得到0.5px)*/
 
/*https路径*/
/*
 
https://security.40017.cn/touch/img/public/borderImage/border-dc.png
 
https://security.40017.cn/touch/img/public/borderImage/border-dc-abeam.png
 
*/
}



微信分享文章带图片方法

其实很简单。只要你内容页面有图片并且长宽比例是1.6这样分享就有拉~我在博客头部插入一张骚动的图片 每次分享到朋友圈就会带上图片而不是单个连接的标志 ps:确保那张图片被收录过!这点很重要 今天亲测!


gulp入门教程

   

一、什么是gulp。

 gulp和grunt是基于Node.js创建,是一个基于任务的命令行工具,它能够同构减少减少预先需要准备的资源来加速工作流。它将工作包裹进入任务之中,任务会随着你的工作进程自动编译。它与grunt的最大区别就是它充分借鉴了Unix操作系统的管道(pipe)思想,很多人认为,在操作上,它要比Grunt简单。

1、插件职能不够单一


2、插件完成了本不该由插件完成的事情(这个我有点迷糊,为什么说是 things don't need to be plugins?)


3、配置过于复杂


4、由于糟糕的流程控制导致的临时文件/目录


二、安装gulp

1、npm install -g gulp


2、npm install --save-dev gulp 注释:使用–save/–save-dev就可以自动更新package.json


三、使用方法

在项目目录直接新建gulpfile.js文件,gulp就5个方法:task(创建任务),run(跑任务),watch(观察一般文件改的自动运行任务),src(源文件),和dest(输出文件)。

一般前端任务都是一些sass编译、文件合并压缩重命名、制作雪碧图、和脚本检查这几个需要如下插件

gulp-jshint脚本检查 gulp-sass sass编译 gulp-concat 合并 gulp-uglify脚本压缩 gulp-rename重命名 gulp-minify-css css压缩

下面上代码:

/**
 * 组件安装
 * npm install gulp-util gulp-imagemin gulp-ruby-sass gulp-minify-css gulp-jshint gulp-uglify gulp-rename gulp-concat gulp-clean gulp-livereload tiny-lr --save-dev
 */

// 引入 gulp及组件
var gulp    = require('gulp'),                 //基础库
    imagemin = require('gulp-imagemin'),       //图片压缩
    sass = require('gulp-ruby-sass'),          //sass
    minifycss = require('gulp-minify-css'),    //css压缩
    jshint = require('gulp-jshint'),           //js检查
    uglify  = require('gulp-uglify'),          //js压缩
    rename = require('gulp-rename'),           //重命名
    concat  = require('gulp-concat'),          //合并文件
    clean = require('gulp-clean'),             //清空文件夹
    tinylr = require('tiny-lr'),               //livereload
    server = tinylr(),
    port = 35729,
    livereload = require('gulp-livereload');   //livereload

// HTML处理
gulp.task('html', function() {
    var htmlSrc = './src/*.html',
        htmlDst = './dist/';

    gulp.src(htmlSrc)
        .pipe(livereload(server))
        .pipe(gulp.dest(htmlDst))
});

// 样式处理
gulp.task('css', function () {
    var cssSrc = './src/scss/*.scss',
        cssDst = './dist/css';

    gulp.src(cssSrc)
        .pipe(sass({ style: 'expanded'}))
        .pipe(gulp.dest(cssDst))
        .pipe(rename({ suffix: '.min' }))
        .pipe(minifycss())
        .pipe(livereload(server))
        .pipe(gulp.dest(cssDst));
});

// 图片处理
gulp.task('images', function(){
    var imgSrc = './src/images/**/*',
        imgDst = './dist/images';
    gulp.src(imgSrc)
        .pipe(imagemin())
        .pipe(livereload(server))
        .pipe(gulp.dest(imgDst));
})

// js处理
gulp.task('js', function () {
    var jsSrc = './src/js/*.js',
        jsDst ='./dist/js';

    gulp.src(jsSrc)
        .pipe(jshint('.jshintrc'))
        .pipe(jshint.reporter('default'))
        .pipe(concat('main.js'))
        .pipe(gulp.dest(jsDst))
        .pipe(rename({ suffix: '.min' }))
        .pipe(uglify())
        .pipe(livereload(server))
        .pipe(gulp.dest(jsDst));
});

// 清空图片、样式、js
gulp.task('clean', function() {
    gulp.src(['./dist/css', './dist/js', './dist/images'], {read: false})
        .pipe(clean());
});

// 默认任务 清空图片、样式、js并重建 运行语句 gulp
gulp.task('default', ['clean'], function(){
    gulp.start('html','css','images','js');
});

// 监听任务 运行语句 gulp watch
gulp.task('watch',function(){

    server.listen(port, function(err){
        if (err) {
            return console.log(err);
        }

        // 监听html
        gulp.watch('./src/*.html', function(event){
            gulp.run('html');
        })

        // 监听css
        gulp.watch('./src/scss/*.scss', function(){
            gulp.run('css');
        });

        // 监听images
        gulp.watch('./src/images/**/*', function(){
            gulp.run('images');
        });

        // 监听js
        gulp.watch('./src/js/*.js', function(){
            gulp.run('js');
        });

    });
});

运行的话只需要在工程目录下 gulp yourtaskname  你的任务名就可以了


很感慨--当时我在imba 聊天之后直接切了出来

我和深圳一家免费oa公司老板的对话。感慨很深。认识约两年 看着他公司越做越好,自己却还是那么屌丝。。


 问你个事情啊焦哥 刚刚公司电话我说想买60个人的版本 我说30人够公司用了 30人版本意思就是oa在线最多30人是吧?
10:51:45
78OA - 秦润(焦岳宏) 2014/9/30 10:51:45

我刚和蒋小姐聊了一下

78OA - 秦润(焦岳宏) 2014/9/30 10:51:55

36台电脑,很容易超过30人

78OA - 秦润(焦岳宏) 2014/9/30 10:52:22

其实后面增加人数的时候,领导再审批购买增加人数,会不开心、

┏.o冰ヤ埗* 2014/9/30 10:52:29

哦哦 好的  那推荐60

78OA - 秦润(焦岳宏) 2014/9/30 10:52:42

第一次60定下来,后面会方便很多

78OA - 秦润(焦岳宏) 2014/9/30 10:52:52

是的,这个事太感谢你了

78OA - 秦润(焦岳宏) 2014/9/30 10:53:02

项目做完了我来找你喝酒

78OA - 秦润(焦岳宏) 2014/9/30 10:53:14



┏.o冰ヤ埗* 2014/9/30 10:53:35

嗯嗯 好的 
10:53:52
78OA - 秦润(焦岳宏) 2014/9/30 10:53:52

其实我给蒋小姐承诺上门实施、培训(管理员、领导、员工)

78OA - 秦润(焦岳宏) 2014/9/30 10:54:10

都培训,我去做一些流程,也教会他们做流程

┏.o冰ヤ埗* 2014/9/30 10:54:27

哦哦 是你亲自来的啊

78OA - 秦润(焦岳宏) 2014/9/30 10:54:30

还帮助配置服务器(云主机)、帮助做服务器的安全设置和配置

78OA - 秦润(焦岳宏) 2014/9/30 10:54:31

是的

78OA - 秦润(焦岳宏) 2014/9/30 10:54:42

朋友介绍的事情,一定得办的好好的

78OA - 秦润(焦岳宏) 2014/9/30 10:54:49

要不然大家不好交代呀

┏.o冰ヤ埗* 2014/9/30 10:55:14

嗯嗯 多谢啦 这家公司去年就要做oa的 

78OA - 秦润(焦岳宏) 2014/9/30 10:55:39

不客气,事情做好第一位 

┏.o冰ヤ埗* 2014/9/30 10:55:47

嗯嗯
10:56:10
78OA - 秦润(焦岳宏) 2014/9/30 10:56:10

我现在也开始接企业的网站建设服务和网络推广服务了

78OA - 秦润(焦岳宏) 2014/9/30 10:56:25

基本上都是15000~15万的项目

78OA - 秦润(焦岳宏) 2014/9/30 10:56:46

其实你做熟了,也可以做这方面的项目

┏.o冰ヤ埗* 2014/9/30 10:56:49

啊 ?那么赚钱?

┏.o冰ヤ埗* 2014/9/30 10:57:03

我做一个都几百块。。

78OA - 秦润(焦岳宏) 2014/9/30 10:57:01

是啊,项目肯定很好赚

78OA - 秦润(焦岳宏) 2014/9/30 10:57:09

关键是要会谈

78OA - 秦润(焦岳宏) 2014/9/30 10:57:19

企业嘛,有时候不是在乎几万块钱

78OA - 秦润(焦岳宏) 2014/9/30 10:57:33

关键是事情是不是很超乎自己的详细

78OA - 秦润(焦岳宏) 2014/9/30 10:57:36

想象

┏.o冰ヤ埗* 2014/9/30 10:58:01

米脱的二次开发看看就能做模板了 然后可以做各种样子的卖

78OA - 秦润(焦岳宏) 2014/9/30 10:58:09

前天去谈了一个网站 23000
10:58:17
78OA - 秦润(焦岳宏) 2014/9/30 10:58:17

昨天去谈了一个 15000

┏.o冰ヤ埗* 2014/9/30 10:58:22

用metinfo么。。

78OA - 秦润(焦岳宏) 2014/9/30 10:58:34

都是弥陀·metinfo

78OA - 秦润(焦岳宏) 2014/9/30 10:58:40

米拓

78OA - 秦润(焦岳宏) 2014/9/30 10:58:51

模板不怎么修改的那种

┏.o冰ヤ埗* 2014/9/30 10:58:59

。。这都可以?

78OA - 秦润(焦岳宏) 2014/9/30 10:59:02

其实企业不在乎我们怎么容易

78OA - 秦润(焦岳宏) 2014/9/30 10:59:12

人家在乎的是我们选的是不是他非常喜欢的

78OA - 秦润(焦岳宏) 2014/9/30 10:59:27

这就是做项目

┏.o冰ヤ埗* 2014/9/30 10:59:31

那要重点企业要什么

78OA - 秦润(焦岳宏) 2014/9/30 10:59:39

要的是方案!!!

78OA - 秦润(焦岳宏) 2014/9/30 10:59:54

我们站在技术角度认为自己做多少,拿多少

78OA - 秦润(焦岳宏) 2014/9/30 11:00:03

人家要的是 一个好的方案
11:00:19
78OA - 秦润(焦岳宏) 2014/9/30 11:00:19

他们最想要的是这个方案能不能有效的满足自己的需要

┏.o冰ヤ埗* 2014/9/30 11:00:25

。。。。我靠我们太low了 就想着怎么实现客户需求

78OA - 秦润(焦岳宏) 2014/9/30 11:00:27

上个月我接了一个SEO得项目

78OA - 秦润(焦岳宏) 2014/9/30 11:00:38

12万

┏.o冰ヤ埗* 2014/9/30 11:00:48

啊??

78OA - 秦润(焦岳宏) 2014/9/30 11:00:54

我就派了一个SEO过去,做了一个很差的网站

78OA - 秦润(焦岳宏) 2014/9/30 11:01:00

但是客户很高兴

┏.o冰ヤ埗* 2014/9/30 11:01:21

有效果么 客户想看到效果啊 

78OA - 秦润(焦岳宏) 2014/9/30 11:01:25

因为我给他的方案是:我3各月给客户150个电话咨询过去

78OA - 秦润(焦岳宏) 2014/9/30 11:01:40

这150个咨询他们可以做出30个客户来

78OA - 秦润(焦岳宏) 2014/9/30 11:01:48

每个客户可以赚5万

78OA - 秦润(焦岳宏) 2014/9/30 11:02:07

而且我给的是3各月时间,如果他们自己做可能半年才能做得到
11:02:34
78OA - 秦润(焦岳宏) 2014/9/30 11:02:34

3各月时间给客户省了75万出来,所以他才愿意12万做这个项目

┏.o冰ヤ埗* 2014/9/30 11:02:40

实际上呢有那么客户么

78OA - 秦润(焦岳宏) 2014/9/30 11:02:52

有的,前期我跟进过他的项目

78OA - 秦润(焦岳宏) 2014/9/30 11:03:09

做了一个月,已经成交了10个客户了

78OA - 秦润(焦岳宏) 2014/9/30 11:03:22

估计提前半个月能完成任务

78OA - 秦润(焦岳宏) 2014/9/30 11:03:34

完了还会有2万的奖金给我的同事

┏.o冰ヤ埗* 2014/9/30 11:03:47

。。。。我靠我觉得没那么简单吧

78OA - 秦润(焦岳宏) 2014/9/30 11:03:49

这2万是他们给的

78OA - 秦润(焦岳宏) 2014/9/30 11:04:00

百度竞价做

78OA - 秦润(焦岳宏) 2014/9/30 11:04:19

这个根本就没有用SEO技术做,纯粹的竞价

┏.o冰ヤ埗* 2014/9/30 11:04:26

给钱百度钱效果最快最直接

78OA - 秦润(焦岳宏) 2014/9/30 11:04:33

百度、58同城、搜房……
11:04:42
78OA - 秦润(焦岳宏) 2014/9/30 11:04:42

而客户要的是直接效果

┏.o冰ヤ埗* 2014/9/30 11:04:51

是啊  

78OA - 秦润(焦岳宏) 2014/9/30 11:04:55

实际上我们都整天研究了SEO技术了

78OA - 秦润(焦岳宏) 2014/9/30 11:05:03

我们应该研究效果才对

78OA - 秦润(焦岳宏) 2014/9/30 11:05:23

昨天晚上我同学也找我做网站了

78OA - 秦润(焦岳宏) 2014/9/30 11:05:35

我直接给模板做,收了5000、

┏.o冰ヤ埗* 2014/9/30 11:05:39

是啊 我给朋友做站直接让他砸钱  一月专科额20万

78OA - 秦润(焦岳宏) 2014/9/30 11:05:58

同学高兴的是我能帮他做主,进度只需要1星期网站就上线了

78OA - 秦润(焦岳宏) 2014/9/30 11:06:14

如果他要按技术路线走,可能要1个月

┏.o冰ヤ埗* 2014/9/30 11:06:34

是啊是啊

78OA - 秦润(焦岳宏) 2014/9/30 11:06:36

实际上5000元买的是我能帮他做主(我对他们业务理解比较透彻)
11:07:16
┏.o冰ヤ埗* 2014/9/30 11:07:16

现在的营销有很多 网站排名只是其中之一 还有很多地方可以吸流量 百度头发竞价可以坐的更精准些

78OA - 秦润(焦岳宏) 2014/9/30 11:07:37

这段时间我对网站项目的理解是:我们做网站的人提高自己的意识,把自己定位在方案设计方面,对客户业务的理解最值钱,技术这这两个之后

┏.o冰ヤ埗* 2014/9/30 11:07:38

好多人不是在微信里面发广告么 什么化妆品代购我在想谁傻啊 买着东西 结果人家轻飘飘一月几千

78OA - 秦润(焦岳宏) 2014/9/30 11:07:51

是啊

78OA - 秦润(焦岳宏) 2014/9/30 11:08:00

给你说这些,希望对你有帮助啊

┏.o冰ヤ埗* 2014/9/30 11:08:06

恩恩

┏.o冰ヤ埗* 2014/9/30 11:08:14

感慨很多






关于培训的种种思考

  在公司也有一年有余了,刚开始对于培训来说就是走个过场,以为实在从里面学不到什么东西,至今我还是依旧那么认为。参加了公司的培训也有五六场了,基本毫无收获,要么去了什么都听不懂,要么还是听不懂,一般情况都是后悔去听。当然最后的结论就是这特么和我有半毛钱关系。嗯 没错我说的是一般情况下,当然还有个别的情况比如k哥的那场培训,我倒是觉得讲的蛮好的,调理清晰语速过快。但是我旁边的开发来了一句你特么跟我讲这个干嘛和我有半年毛钱关系啊,左边的产品问我ejs是什么 mvc是什么。。 我一一解答。然后k哥的一场培训还没结束已经走了不少人了,恭喜k哥他那场的培训人还是蛮多的。虽然我在下面听到的都是负面的反馈。

   问题显然易见。培训是很多但是效果却不这么让人满意。在《心理学核心课程教材系列:认知心理学)》(Cognitive Psychology)第一章里面就举了一个小例子路人向警察问路:

阅读详细 »


node connect logger报错无此方法

代码:

var http = require('http');var connect = require('connect');var app = connect()
  .use(connect.logger('dev'))
  .use(connect.static('public'))
  .use(connect.bodyParser())
  .use(function(req, res){
    res.end(JSON.stringify(req.body));
  })http.createServer(app).listen(2081);

报错图:

/home/carl/nodedev/test.js:5
  .use(connect.logger('dev'))
               ^TypeError: Object function createServer() {
  function app(req, res, next){ app.handle(req, res, next); }
  merge(app, proto);
  merge(app, EventEmitter.prototype);
  app.route = '/';
  app.stack = [];
  return app;} has no method 'logger'
    at Object.<anonymous> (/home/carl/nodedev/test.js:5:16)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3


原因:

connect更新了 logger更换成了morgan 请看这里 https://www.npmjs.org/package/connect

现在错误日志记录需要用morgan ,引用下 morgan 就行

var logger = require('morgan');

var app = connect().use(logger());