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)