yzqzs 发表于 2017-2-21 10:32:58

NodeJS记录(二)

  以下是在到r.js的build/jslib/build.js和build/jslib/node/file.js时碰到的node相关知识点。
  一、获取当前执行js文件的真实路径
  node中使用fs模块的fs.realpathSync方法。如目录C:\node\b.js,b.js内容如下

var fs = require('fs');
// 点号表示当前文件所在路径
var str = fs.realpathSync('.');
console.log(str);
  执行b.js文件,控制台输出如下

  有时我们需要将realpathSync返回的路径中的反斜杠转成正斜杠,r.js的file.js中添加了一个函数

function frontSlash(path) {
return path.replace(/\\/g, '/');
}
  二、将路径字符串标准化
  使用node的path模块normalize方法可以将路径标准化,如多个斜杠只保留一个。

var path = require('path');
// bar后有两个斜杠
var str = path.normalize('/foo/bar//baz');
// 格式化后只保留一个
console.log(str);

  需要注意“..”和“.”。斜杠后加一个点“.”没有意义可以删除,如以下str1和str2是等价的

var path = require('path');
var str1 = path.normalize('/foo/bar/baz');
var str2 = path.normalize('/foo/bar/baz/.');
console.log(str1);
console.log(str2);
   两个点“..”会返回上一级目录,如

var path = require('path');
var str1 = path.normalize('/foo/bar/baz');
var str2 = path.normalize('/foo/bar/baz/..');
console.log(str1);
console.log(str2);
  执行后结果如下

  以上截图可看出路径输出的都是反斜杠。需要注意下,windows中输出的路径是反斜杠,linux中是正斜杠。
页: [1]
查看完整版本: NodeJS记录(二)