express bodyParser post上传文件request.body 不能获取表单值

问题如上描述:express bodyParser post上传文件request.body 不能获取表单值可以上传保存文件到指定目录,但是form 里其他表单项却无法用 request.body['表单name'] 来获取表单值.express 配置如下:app.use(express.bodyParser({ uploadDir:__dirname+‘/upload/’, keepExtensions:true, limit:10000000, defer:true })); app.use(express.multipart()); app.use(express.me

javascript 基础训练 Array数组

Array 是javascript语言中的一种引用类型,表示js里的数组.Array 对象的创建大致有4种方法.(1) var arr=new Array(); 上面使用构造函数创建了一个新的数组对象 arr,此数组为空数组,里面没有任何元素.(2)var arr=new Array(num);上面的num为整数,表示创建一个包含num个元素的空数组.(3)var arr=new Array(11,’xiaoxiao’,function(){alert(’3′)})上面调用构造函数时填充了3个参数,其实可以更多,表示创建一个数组并依次把参数当做新数组的元素填充到数组中.可见js的数组中元素可以

my97显示双日历

大名鼎鼎的my97 日期选择控件,做开发的攻城狮应该或多或少都了解.今天正好有个需求是现实双月份,而且截至日期要大于开始日期等需求,第一时间想到了my97控件.首先把最后的效果图放上来一睹为快!我的页面首先有2个文本框,一个开始日期,一个结束日期<inputtype=“text”id=“startTime”placeholder=“起始日期”/>- <inputtype=“text”id=“endTime”placeholder=“结束日期”/>首先去 my97 官网下载控件,引用的时候最需要引用一个主文件即可,其他样式,图片等都不需考虑,脚本内部做了引用.<sc

javascript 基础训练 Function 函数对象

正如标题所写,Function 确实是一个对象.而我们定义的任何一个函数其实都是Function 对象的一个实例,也可以理解为指向 Function 对象的一个实例.既然是对象的一个实例,那肯定指向了Function 类型的一个引用. 既然指向了一个引用类型的内存地址,那你也可以简单的把我们定义的函数理解为一个变量,这个变量指向了一个引用类型的地址,这个地址指向了Function 对象的一个实例.既然我们定义的函数其实是一个变量,那这个函数实例地址可以同时指向多个变量.看下面的代码:var add = new Function("n", "m", &qu

javascript 下将万恶的毫秒变成友好可识别的 时,分,秒

javascript 环境里的时间戳随处可见,这个值表示的是从 1970年1月1日午夜0点开始计数到现在的一个毫秒数.获取JavaScript中的时间戳有几种方法:vartimestamp=Date.parse(newDate());此方法精确到了秒,毫秒位数上全部都是0vartimestamp=(newDate()).valueOf();此方法精确到了毫秒位.如果考虑到浏览器兼容性的问题,上面的方法可以兼容市面上大多的浏览器,推荐使用.vartimestamp=newDate().getTime();此方法和上面得到的值一样.vartimestamp=Date.now();如果是在V8环境下

node.js 下 express 框架如何获取参数

web下的提交数据的方法有2种,GET,POST,不明白的可以直接去面壁了.到底采用哪种方式提交,取决与form 的 method 值.作为node.js下大名鼎鼎的express框架,如何获取这2中参数呢(1) 先看路由规则app.get(‘/group/:groupID’,function(request,response,error){response.render(‘group’,{title:‘分组管理’,userList:[]};});上面的路由规则让我们不仅想起了MVC模式, 如: localhost:9210/group/1008这里要访问groupID 为 1008 的分组信

经典算法题随机从连续的100个不重复数中取出100个不重复随机数

经典的面试题: 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复网上实现的方法也千奇百怪.实现思路:(1)把N个数放入Hashtable 或者arrayList 中.(2)从上面的集合中随机抽取一个数放入int数组中.(3)把取出的这个数从上面的集合中删除.(4)循环 (2),(3) 步骤,直到int数组取满为止.我们一般都会想到这种做法,但是当Hashtable或者ArrayList中放几千万,几亿数据时,这时从集合中删除元素将严重影响性能,如果突破此瓶颈? 网上找到一种更好的方法.(1)把N个数放到容器A(int数组)中.(2)从N个数中随机取出1个数放入容器B(

Mac 常用快捷键整理

MAC下常用的快捷键:Command+W 将当前窗口关闭(可以关闭Safari标签栏,很实用)Command+Option+M 将所有窗口最小化Command+Q 关闭当前应用程序(相当于Dock鼠标右键推出.很实用)Command+M 将目前使用的窗口最小化Command+H 隐藏当前窗口或者软件Command+tab 为切换当前工作任务Control+Command+S 切换控制条的显示和隐藏Command+i 常规信息(显示及设置图标属性)Command+delete 移到废纸篓(删除)Optionion+鼠标 拖图像或文件夹可以将图像或文件夹拷贝到其它文件夹中,而不是移动Command

浅谈 javascript 中的比较操作符 ==

我们知道javascript中的比较操作符有2种,== 和 ===== 是只比较值, === 不仅比较值还比较类型 ,详细的区别自动google去.这里简单说下判断比较操作符 ==== 此操作符比较常用,但是隐藏的”坑”也不少,你在开发过程中有没有跳到 == 操作符设下的”坑”呢?由于javascript中的类型转化非常灵活,我们知道除了null,undefined,false,0,”空字符串 转化为布尔型 false 外,其他都是 true,其中有一个例外,NaN 是个非数字类型,NaN!=NaN 成立.这个非常特殊.javascript中比较操作符规则:(1)当基本类型比较时,两边会转化成

Git 简易使用笔记

git add . 会把当前目录中所有有改动的文件(不包括.gitignore中要忽略的文件)都添加到git缓冲区以待提交git add * 会把当前目录中所有有改动的文件(包括.gitignore中要忽略的文件)都添加到git缓冲区以待提交所以在有要忽略的文件(如:配置文件之类的)有做修改的时候git add .可以正常工作,会把所有非忽略的所有有改动的文件添加到缓冲区git add *则会报错,且此几命令不会添加任何文件到缓冲区本地代码添加修改首先(1) git add . 从本地代码文件夹添加到索引目录.(2) git commit -m”提交描述信息” 从代码索引目录提交到HEAD目录

比较俩个对象或者json格式数据是否相同

javascript 中的对象比较并不是值的比较.所以类似object 和json类型格式比较时要考虑是否包含相同的属性并具有相同的属性值.贴一个用于对象比较的函数.只需传入两个对象即可返回 true 或者 falsefunctioncompareObject(o1,o2){ if(typeofo1!=typeofo2)returnfalse; if(typeofo1=='object'){ for(varoino1){ if(typeofo2[o]=='undefined')returnfalse; if(!compareObject(o1[o],o2[o])

javascript Date类型扩展日期格式化方法 DateFormat

Date.prototype.Format=function(fmt){//author:meizz varo={ “M+”:this.getMonth()+1,//月份 “d+”:this.getDate(),//日 “h+”:this.getHours(),//小时 “m+”:this.getMinutes(),//分 “s+”:this.getSeconds(),//秒 “q+”:Math.floor((this.getMonth()+3)/3),//季度 “S”:this.getMilliseconds()//毫秒 }; if(/(y+)/.test(fmt))fmt=fmt.repl

linux 系统为啥喜欢用~代表Home目录

Linux知识:为什么要用字符~来表示home目录在Unix风格的操作系统里(包括BSD,GNU/Linux和MacOSX),通常用波浪号“~”来表示当前用户的主目录(home目录):例如,如果当前用户的home目录是/home/bloggsj,那么,输入cd或cd~或cd/home/bloggsj或cd$HOME都是等效的。这种习惯源自于1970年代流行的Lear-SieglerADM-3A终端机,这种机器上波浪号和“home”键(用于把光标移动到最左端)正好在同一个键上。下面是Lear-SieglerADM-3A终端机的一些照片:LearSiegler-ADM3ATerminal(ca.1

javascript 匿名函数实现模块作用域

其实javascript中并没有像其他强类型语言里的模块作用域.何为模块作用域,比如C#代码中if(true) { stringrtnString="成功"; }else { stringrtnString="失败"; } return rtnString;上面的代码在C#里编译时会报错,因为rtnString 分别在 if  和 else 分支做了定义,而外部并没有定义,所以报错,所以你可以简单的把强类型里面的 花括号 { } 理解为模块作用域.其他强类型语言大体也可以这样理解.所以在javascript中function showNum(count)

给linux 换上163的源

有一种错误叫做:Readingpackagelists...Done Buildingdependencytree Readingstateinformation...Done E:Unabletolocatepackagecairo上面出现的情况是阿里云环境安装图形组件 cairo 时出现错误(可以使用ccap代替生成验证码),在很多开源的LInux 内核系统下图形处理大多依赖此组件.出现上面的错误是因为nodeJS 环境下 sudo npm installcanvas 时,系统需要依赖 cairo,而服务器没有/找不到.所以用脚趾头稍微想了想便直接敲下了sudoapt-getinstall

同一台电脑关于多个SSH KEY管理

使用环境:关于同一台电脑LInux系统下使用多个SSH key 切换使用(或者多用户使用ssh提交代码)要求,可以创建不同的 PUBLIC KEY ,根据下面步骤设置.(1)比如有aaa,bbb,ccc 三个帐号需要生成不同的 PUBLIC KEY$ssh-keygen-trsa Generatingpublic/privatersakeypair. Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):/root/.ssh/id_rsa_aaa Enterpassphrase(emptyfornopassphrase): Entersamepassp

回到顶部