Error: invalid csrf token

当你的Express 升级到4.0+版本后,有没有遇到过下面这个问题.{ [Error:invalidcsrftoken] expose:true, code:'EBADCSRFTOKEN', statusCode:403, status:403 }上面的错误是在node.js 运行环境的命令行报出来的.页面直接返回了500服务器错误.我执行了什么操作?这是我的一个新站 三思悦 ,此站有个功能是邀请注册,不对外公开注册的.所以管理后台有个页面用来显示 邀请码,同时有个按钮,用来生成验证码,一次生成唯一不重复的50个.所以这个页面对应2个相同的url ,只不过get方式用来呈现为

jquery选择器之基础训练第一篇

jquery是前端开发者最喜欢的javascript开发框架之一,就像他的宣传语一样,写更少的代码,做更多的事情,现在拥有一大波开发者粉丝,甚至微软将它作为官方库,这一切说明jquery在开发者心中确实有很高的地位.jquery有一个强大的构造函数jQuery() 也就是我们常常简写的 $ ,这个构造函数强大之处在于,它能识别复杂的选择表达式进而找到你想要的元素.所以使用jquery的前提是会使用他的选择表达式,下面几种类似css选择器$(document)//选择整个文档对象 $('#documentID')//选择ID为myId的网页元素 $('a[name=me

主域名权重在搜索引擎看来最高

seo的摸索一直进行中,所以这个博客就成了个牺牲品,当初因为nginx做代理同时支持 www.yijiebuyi.com和 yijiebuyi.com 2个域名,熟不知在搜索引擎中这是2个完全不同的站点,所以决定把不带www的站点挑战到带www的站点当时看来百度权重1,www.yijiebuyi.com的收录略高于yijiebuyi.com 所以在nginx做了301跳转,当 yijiebuyi.com 过来的路径全部301跳转到www.yijiebuyi.com经过2个月的观察,发现了下面的问题:百度权重没有变化,goole pr值依旧没变yijiebuyi.com 的收录不亚于 www.y

levelDB前置匹配查询方法

上一篇简单说了levelDB存储复杂数据结构里面介绍了nosql 方式下kv数据如何存储复杂数据结构.今天用实例的方法说明下调用levelDB api的方法,因为一介布衣博客就是就是使用node.js 和 levelDB搭建而成,所以今天还是用此博客来举例说明.需要结合上一篇来学习,关于levelDB的api我简单做了一个封装,看这篇文章 levelup的使用方法 里面的 get ,put ,delete 都非常好理解,就是根据key去查询value ,插入一对key和value ,根据key删除value.createReadStream方法可能不是特别好理解,在levelDB存储复杂数据结

levelDB存储复杂数据结构

levelDB是一种轻量级kv类型数据库,且自己本身并不去维护索引.你可以理解成,levelDB数据库中只有其中的一对kv是有关系的,和其他任何数据没有关系.就拿 一介布衣 博客举例说明一下:博客中有nosql分类,点击nosql应该加载此分类下的所有博文并分页.首先,博文的存储类型如下key: blog.fse89fw8fwe89fwe98fweiwe9fvalue:{_id:'fse89fw8fwe89fwe98fweiwe9f',title:'levelDB存储复杂数据结构',content:'省略500字',category:'n

node.js 用函数实现 setTimeout 的效果

程序中常常有回到一种需求"等一等",就是让当前线程延时等待一下.之前发过一个帖子就是关于 node.js定时器setTimeout(function(){//实现内容},时间值)确实可以起到这样的效果,用起来也非常方便,匿名函数里是你的逻辑实现,后面的时间值是多少毫秒.我们可以自己实现一个方法来模拟setTimeout 函数functionmySetTimeout(ms){ varcurrentTime=newDate().getTime(); while(newDate().getTime()<currentTime+ms); }如何使用:console.log(&

node.js使用leveldb

上一篇简单说到leveldb数据库,此开源项目目前是支持处理十亿级别规模Key-Value型数据持久性存储的C++ 程序库。那么问题来了,node.js环境下如何使用leveldb数据库呢?node.js下需要第三方npm包 levelup 和 leveldown 来支持.安装依赖环境:npminstalllevelupleveldown提醒:levelup 版本最好用0.10.0或者更低版本,最新版本和leveldown编译时出问题.npm 安装指定版本依赖包npminstalllevelup@0.10.0或者你也可以这样npminstalllevel使用起来也非常简单.varlevelup

高性能kv数据库levelDB

LevelDB是google公司开发出来的一款超高性能kv存储引擎,以其惊人的读性能和更加惊人的写性能在轻量级nosql数据库中鹤立鸡群,下面简单说下这个文件存储引擎。次存储引擎是google公司2位大神级工程师开发而成.Jeff Dean其人:http://research.google.com/people/jeff/index.html,Google大规模分布式平台Bigtable和MapReduce主要设计和实现者。Sanjay Ghemawat其人:http://research.google.com/people/sanjay/index.html,Google大规模分布式平台GF

MongoDB连接字符串格式参数及说明

MongoDB的标准连接字符串格式及参数分析说明标准格式如下:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]mongodb:// 是一个必填的前缀,它标识当前字符串是标准连接格式。{{username:password@}}可选。给出用户名和密码后,驱动将在连接到数据库后尝试登录。host1 uri里唯一的必填项,数据库的连接地址。:portX 可选。默认连接到27017端口。/database 是希望连接到的数据库名,只有在提供 use

markdown 语法总结学习

markdown 这种轻量级编辑工具确实给像我这种不会排版的人带来很多亮点,你只需要注重你的内容书写即可,语法也非常简单,常用就是下面这几种,好记好使唤,简单归纳总结一下:文字:*斜体***加粗**_斜体___加粗__上面2种方式都适用.删除线 (像这样 ~~悲剧啊,我被删除了~~)链接:[一介布衣](http://www.yijiebuyi.com)Headers:从#到######表是\<h1>到\<h6>#This is \<h1>##this is \<h2>###### this is <h6>List:1. 1112. 2

jquery 常用小功能收集

在新窗口打开链接$(document).ready(function(){ //全部链接新页面打开 $('a[href^="http://"]').attr("target","_blank"); //部分链接新页面打开,比如class='menu'的链接 $('a[class='menu']').click(function(){ this.target="_blank"; }); });<a href="http://www.op

mac下非常好用的命令行工具 iTerm2

今天要说的 iTerm2 应该是mac系统中不可多得的命令行工具之一.简单列出几点给我们带来方便快捷的功能点.选中即复制我们之前用过的命令行要么是不能使用常规复制快键键来复制操作,要么是选中后再按键复制,iTerm2很特殊,选中就自动复制成功.去你需要粘贴的地方按下 command + v 即可粘贴成功. 更多mac相关快键键全文查找功能,就和我们在文本编辑器中编辑文字一样,只需要command + f 输入要查找的内容,即可在当前命令行页面查找并高亮显示,如图所示:搜索 register 在界面查找并全部高亮显示,点击搜索框右侧箭头可以循环逐个定位分隔屏幕显示,水平分隔 command +s

angular基础入门学习 迭代器

我们的应用现在有了一个搜索框。注意到页面上的手机列表随着用户在搜索框中的输入而变化。步骤2和步骤3之间最重要的不同在下面列出。你可以在GitHub里看到完整的差别。控制器我们对控制器不做任何修改。模板app/index.html<divclass="container-fluid"> <divclass="row-fluid"> <divclass="span2"> <!--Sidebarcontent-->       Search: <input ng-model="

node.js使用mocha自动化测试程序

之前有过一篇比较简单的关于 mocha 做自动化测试的帖子, mocha测试今天稍晚详细点说下.常见的开源项目你都会发现test目录,当然我们自己创建的项目建议也加上此目录,在这个目录下做自动化测试.目前node.js下做自动化测试的工具也很多,今天我们主要来介绍下如何使用mocha进行自动化测试.安装 mochanpminstall-gmocha这样你就可以创建测试脚本了,如下:varassert=require("assert"); describe('Array',function(){ describe('#indexOf()',fu

node.js自动化测试断言包assert的方法说明

Assent 断言模板包含如下方法:assert.fail(actual, expected, message, operator)assert.ok(value, [message])assert.equal(actual, expected, [message])assert.notEqual(actual, expected, [message])assert.deepEqual(actual, expected, [message])assert.notDeepEqual(actual, expected, [message])assert.strictEqual(actual, ex

2014年12月28日北京地面交通全线涨价拼车服务必火

写在2014年11月27日,为迎来北京地面交通涨价做纪念.也许某些年以后我会怀念起来曾经4毛钱坐上300路公交绕着三环狂奔.也许以后会拿出当年珍藏的2元地铁通票在孙子面前炫耀.作为一个漂在北京的地铁通勤族,地面交通涨价和我关系很大,但是似乎又和我没啥关系,因为在整个过程"我们"一直是处于被代表,被论证的角色.也许鄙人还没有站到一个高度上去看待这个宏观调控,多出的几百元公交费还是承担的起的(接受,接受,被接受,好像只能这样了,还有别的办法吗,哈哈)进入下一话题:涨价会面临更多的人选择买车,但是面对摇号的门槛,黑车师傅表示愿意为您全心全意服务,可惜脑中羞涩,这样既帮车主补贴了油

linux内核 rename 命令批量修改名称

开头:Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,由于历史原因,在Perl语言大红大紫的时候,Linux的工具开发者们信仰Perl能取代C,所以大部分工具原来是C版本的都被Perl改写了,因为Perl版本的支持正则处理,所以功能更加强大,已经不再需要C语言版本的了。如何区分系统里的rename命令是哪个版本的?输入 man rename 看到第一行是RENAME(1) Linux Programmer’s Manual RENAME(1)那么 这个就是C语言版本的。而

You have not concluded your merge (MERGE_HEAD exists) git拉取失败

今天获取git线上仓库代码报了这个错误:zhangzhi@moke:~/code/ktsg-api$gitpull Youhavenotconcludedyourmerge(MERGE_HEADexists). Please,commityourchangesbeforeyoucanmerge.错误可能是因为在你以前pull下来的代码没有自动合并导致的.有2个解决办法:1.保留你本地的修改git merge --abortgit reset --merge合并后记得一定要提交这个本地的合并然后在获取线上仓库git pull2.down下线上代码版本,抛弃本地的修改不建议这样做,但是如果你本地修

粉丝过万的微信个人号遭到封杀

不少微信好友数量过万的人反映,对方加其好友自己无法点击确认通过,选择朋友添加不用验证的设置更改失败,部分甚至无法建微信群,微信号无法登陆,显示:“你的账号已被暂时关闭”。微信官方早就声明个人微信是联系好友的,要做企业级应用请去公众号,你坚持要在个人微信里耍小聪明,就像是范伟在电影里扮演的那个角色,看见灯泡上标注不要放到嘴里,非得要试试,结果放到嘴里取不出来能怪谁?看看周围的人,真正个人微信好友过万的人,基本都是所谓的砖家和营销大湿,据说最多的一个人有64万好友,当微信数量到这个量级时,微信还有通讯意义吗?忠告一句:微信平台不是微博平台,也不是互联网平台,不要试图逾越微信的规则,那只会自取没趣,

mongoose 连接查询控制副本集等操作引导

引用自:https://cnodejs.org/topic/5206581b44e76d216aae072e之前已经有朋友总结了mongoose的一些内容,推荐他的文章,包含了主干部分,这是接着后面写的。接下来是翻译自mongoose guide#Queries文件可以通过一些静态辅助模型的方法检索。任何涉及 指定 查询 条件的模型方法,有两种执行的方式:当一个回调函数:被传递,将立即执行的操作结果传递给回调。未被传递,返回一个查询的实例,它为您提供了一个特殊的QueryBuilder接口。让我们来看看在传递一个回调时会发生什么:varPerson=mongoose.model('Pe

ejs母版页让你的node.js应用开发更快更有效- 一介布衣

引子:母版页之方便之处相信做过web开发的都不用说太多,可以重复利用资源,维护方便,开发起来你只需关注当前页变动的东西,固定不变的全部放到母版页,可以理解为前人栽树后人乘凉,省时,省力,省心.下面围绕2点简单说下.一.node.js开发,基于ejs引擎的母版页二.前提环境 ,如何使用及示例介绍就像上面的这个图,如果你的业务说覆盖的页面只有中间是变化的,那么其他部分完全可以放到母版页中呈现.node.js 下的web应用开发有2种模板引擎 ejs 和 jade ,当然你可能直接用jquery 的前端模板后端ajax请求数据等等....(也算一种吧)ejs 下如何使用母版页?ejs的母版页功能支持

顺丰嘿客O2O全国布阵亲身体验 - 一介布衣

周末出去闲逛,发现小区附近多了一家嘿客店,顺丰的O2O布局在业界相传甚广,打算进去体验一把.上图就是实体店实景图,从外面看除了比较独具一格的招牌外似乎看不出哪些亮点.去店里看看.店面所售物品全面虚拟化,一个图片介绍卡面,上面的介绍和二维码,正中间2台触摸平板非常显眼.体验了一下,系统非常卡顿,不论是点击哪个按钮几乎都要坐在椅子上歇一歇才能反应过来,注册了一个账号,就因为点击的快了点,图上右侧的机器貌似死机了,我等了10分钟之久没有反应过来,业务员又把左侧机器启动,接着在左侧小心翼翼,稳稳当当的注册完.上面这个帐号注册费了很大劲,希望顺丰能改进这个系统体验.下单可以选择直接送货到家或者选择送货到

继人人影视后射手网也未能幸免-一介布衣

老牌中文字幕分享网站射手网宣布射手网正式关闭。这是继人人影视之后又一个倒下的中文字幕站。射手网是大陆最大的中文字幕站,是自愿翻译者存储和交流外国影视中文字幕的平台,站长称其不以盈利为目的,也未与盈利性组织有任何关系。作为最大的中文字幕站之一,射手上有70余G的字幕资源。以下是射手网站长沈晟的公告全文:射手网陪着我度过15年了。我所希望射手网所具有的价值,就是能令更多人跨越国家的攀篱,了解世界上不同的文化。如果这个网站有帮到人,我就已经很满足了。但是,需要射手网的时代已经走开了。因此,今天,射手网正式关闭。现人人影视网站宣布清理内容。免费影视资源和字幕要一去不复返了。那些追美剧的网友是不是要加强

SEO和域名泛解析如何权衡 -一介布衣

什么是泛解析?类似下面这样,*.yijiebuyi.com有什么好处呢? 就是所有的二级域名都指向了 yijiebuyi.com 解析的IP上.(就是多个域名指向一个IP)比较熟悉的是网易博客有这种泛解析的应用,比如我的网易博客设置一个独一无二的二级域名 zzhi191.blog.163.com 他的效果和新浪博客二级域名 blog.sina.com.cn/zzhi191 一样,但是网易的明显更好记.这种多个域名指向一个IP对于seo是不友好的,或许会被降权,恢复日期动辄数月,如果你也躺枪了,只好多烧香了.我自己的博客做了1年多了.google PR值永远是0,这可能是很多因素影响,之前我的站

sublime text 2 不可多得的插件 - 一介布衣

Sublime Text以其轻巧,漂亮和强大的功能被广大程序员所喜爱,完善的插件,代码缩略图,多窗口切换等,真是不可多得的一款跨平台编辑器.Sublime Text 2是一款共享软件,免费和收费的差别仅仅是偶尔会跳出一个购买弹出框.插件安装要使用Package Control组:在线安装方法按Ctrl+`调出console粘贴以下代码到底部命令行并回车:importurllib2,os;pf='PackageControl.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos

.gitignore设置 git忽略跟踪文件和文件夹

出自linux之父的强大代码管理工具 git 不用多说,使用起来也相当顺手,对于有些资源我们不想跟踪或者某一类资源,该如何屏蔽掉,这就要使用到了 .gitignore 文件.应用场景:1)或略根据,避免提交到代码库的文件或者目录2)指定跟踪,跟踪某一个文件配置语法:1)以“/”开头表示目录;2)以“?”通配单个字符3)以“*”通配多个字符;4)以方括号“[]”包含单个字符的匹配列表;5)以叹号“!”跟踪某个文件或目录;  git 对于 .gitignore 配置文件是按行从上到下进行规则匹配的,如果前面的规则匹配的范围更大,则后面的规则将不会生效;2、示例:  规则:.DBStore/*   

阿里云yum升级python2.7 CentOS默认自带pyton2.6

阿里云安装环境部署,点击查看 nginx安装centOS默认自带的python版本为啥不是2.7因为:由于yum没有兼容python2.7 ,所以安装python2.7 yum就无法使用了,该如何做呢?让python2.6 和 python2.7 共存 ,yum 依然使用 python 2.6 ,系统使用 python 2.7使用yum 升级python 2.6 ,首先要下载 release文件yum 安装 python2.7运行下面的shellwgethttp://li.nux.ro/download/nux/dextop/el6/i386/nux-dextop-release-0-2.el

正确关闭mongodb 防止数据丢失

mongodb不正确关闭会导致非常严重的问题,比如 使用 kill -9 pid 方式来关闭,如果没有开启日志的情况下,可能造成数据丢失,数据库瘫痪.运行错误:Error: error doing query: failed登录Mongodb数据库后关闭服务.>useadmin; switchedtodbadmin >db.shutdownServer(); TueNov1811:03:24.164DBClientCursor::initcall()failed servershouldbedown... TueNov1811:03:24.169tryingreconnectto1

centOS 使用 yum 安装 nginx 1.6.2

今天打算把之前阿里云赠送半年的云主机给利用起来,所以买了数据盘开了1M带宽,重新启动,ssh 登录进来后,首先就是环境安装.这篇博文分享下 centOS 下利用 yum 安装 nginx直接通过 yum install nginx 肯定是不行的,该怎么办!首先把 nginx 的源加入 yum 中,运行下面的命令:rpm-ivhhttp://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm上面的图告诉你可以使用 yum来安装 nginx 了. 不放心的话,你可以通过 yum in

回到顶部