let { query, pathname } = url.parse(req.url, true);这样的语法应该怎么理解??
url.parse 返回的是一个对象,这个对象里含有querey, pathname属性,原来你应该这么写:
let ret = url.parse(req.url,true)
let query = ret.query;
let pathname = ret.pathname;
ES6提供了对象解构赋值语法,支持直接从对象结构出含有的属性,语法是:
let {var1, var2} = {var1:…, var2:…}
因此,上面的代码简化为
let { query, pathname } = url.parse(req.url, true);
当然,如果url.parse返回了null/undefined,上述代码会报错,所以使用解构赋值前最好判断下是否为null
let ret = url.parse(req.url, true);
if(ret==null){
return;
}
let {query, pathname} = ret;