node开发(base64+号问题,typeof,mysql replace操作,superagent用法,url解析,uuid)
2017-11-09 11:18
501 查看
param(url里面的参数)使用base64编码的时候会出现 +号
而传url的时候 后台接受到param 的时候会把 +号 认为是空格 从而解析错误
办法:req.query.param = req.query.param.replace(/ /g,'+');
/pattern/是正则表达式的界定符,里面的内容(pattern)是要匹配的内容
对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行返回第二个匹配,依次类推。例如
特殊情况下 前台按照接口文档 不传入对应数值的时候 使用 typeof给个默认值
var searchStr=typeof reqParam.searchStr !='string' ? "" : reqParam.searchStr;
replace into table (id,name) values('1','aa'),('2','bb')
REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARY
KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。
注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该
语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。
superagent用法 :https://cnodejs.org/topic/5378720ed6e2d16149fa16bd
var request =require('superagent');
request
.post(url)
.send(param)
.set(headers)
.end(function(err,data){
if(err||data.status>=400){
log.error('[apiTest] error: ' + JSON.stringify(data));
res.statusCode = data.status ? 403 : data.status;
res.send(data.text);
}
else {
log.info('apiTest: ' + JSON.stringify(data.text));
res.statusCode = data.status;
res.send(data.text);
}
});
param和headers都是obj对象
var url = require('url');
var a = url.parse('http://example.com:8080/one?a=index&t=article&m=default');
console.log(a);
//输出结果:
{
protocol : 'http' ,
auth : null ,
host : 'example.com:8080' ,
port : '8080' ,
hostname : 'example.com' ,
hash : null ,
search : '?a=index&t=article&m=default',
query : 'a=index&t=article&m=default',
pathname : '/one',
path : '/one?a=index&t=article&m=default',
href : 'http://example.com:8080/one?a=index&t=article&m=default'
}
nodejs生成UID(唯一标识符)——node-uuid模块
unique identifier 惟一标识符 -->> uid
在项目开发中我们常需要给某些数据定义一个唯一标识符,便于寻找,关联。
node-uuid模块很好的提供了这个功能。
https://github.com/broofa/node-uuid/
使用起来很简单,两种:
var uuid = require('uuid');
1、uuid.v1(); -->基于时间戳生成 (time-based)
2、uuid.v4(); -->随机生成 (random)
而传url的时候 后台接受到param 的时候会把 +号 认为是空格 从而解析错误
办法:req.query.param = req.query.param.replace(/ /g,'+');
/pattern/是正则表达式的界定符,里面的内容(pattern)是要匹配的内容
对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行返回第二个匹配,依次类推。例如
特殊情况下 前台按照接口文档 不传入对应数值的时候 使用 typeof给个默认值
var searchStr=typeof reqParam.searchStr !='string' ? "" : reqParam.searchStr;
replace into table (id,name) values('1','aa'),('2','bb')
REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARY
KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。
注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该
语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。
superagent用法 :https://cnodejs.org/topic/5378720ed6e2d16149fa16bd
var request =require('superagent');
request
.post(url)
.send(param)
.set(headers)
.end(function(err,data){
if(err||data.status>=400){
log.error('[apiTest] error: ' + JSON.stringify(data));
res.statusCode = data.status ? 403 : data.status;
res.send(data.text);
}
else {
log.info('apiTest: ' + JSON.stringify(data.text));
res.statusCode = data.status;
res.send(data.text);
}
});
param和headers都是obj对象
var url = require('url');
var a = url.parse('http://example.com:8080/one?a=index&t=article&m=default');
console.log(a);
//输出结果:
{
protocol : 'http' ,
auth : null ,
host : 'example.com:8080' ,
port : '8080' ,
hostname : 'example.com' ,
hash : null ,
search : '?a=index&t=article&m=default',
query : 'a=index&t=article&m=default',
pathname : '/one',
path : '/one?a=index&t=article&m=default',
href : 'http://example.com:8080/one?a=index&t=article&m=default'
}
nodejs生成UID(唯一标识符)——node-uuid模块
unique identifier 惟一标识符 -->> uid
在项目开发中我们常需要给某些数据定义一个唯一标识符,便于寻找,关联。
node-uuid模块很好的提供了这个功能。
https://github.com/broofa/node-uuid/
使用起来很简单,两种:
var uuid = require('uuid');
1、uuid.v1(); -->基于时间戳生成 (time-based)
2、uuid.v4(); -->随机生成 (random)
相关文章推荐
- 部署java项目出现base 64解析问题
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
- node.js 开发指南 – Node.js 连接 MySQL 并进行数据库操作
- mysql select UPPER(REPLACE(uuid(),'-','')) from xxxtable 得到相同的uuid的问题
- Navicat for MySQL and dos 在win7 64 位系统中遇到的问题,以及简单操作
- Mysql修改字段类型 UUID base64
- node.js 开发指南 – Node.js 连接 MySQL 并进行数据库操作
- mysql 中substring和replace的用法
- PHP中操作MySQL的一些要注意的问题
- 解析:mysql 8小时空闲后连接超时的问题
- peopleaggregator安装问题1-FATAL: Unable to guess base URL
- 从LINQ实例解析LINQ的另类用法,解决多条件组合问题
- [mysql] replace、regexp的用法
- 解决使用MySQL C-API开发应用时的连接超时问题
- 关于struts2,mysql,hibernate的开发环境下的中文显示为“问号”的问题总结
- 关于struts2,mysql,hibernate的开发环境下的中文显示为“问号”的问题总结
- ASP.NET + MySQL 开发笔记 - MembershipProvider 和 RoleProvider 用法
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- .net操作mysql中文字符乱码的问题
- MySQL的INSERT和REPLACE语句用法