街头篮球出现乱码 出现Cannot find ...

node.js中的fs.realpath方法使用说明
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了node.js中的fs.realpath方法使用说明,本文介绍了fs.realpath的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
方法说明:
获取真实路径。
可以使用process.cwd解决相对路径。
fs.realpath(path, [cache], [callback(err , resolvedPath)])
由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(“fs”) )
接收参数:
path&&&&&&&&&&&&&&&&&&&&&&&&&&&& 路径
cache&&&&&&&&&&&&&&&&&&&&&&&&&& 可选,一个文字的映射路径可用于强制一个特定的路径解决或避免额外的fs.stat需要知道真正的路径对象。
callback&&&&&&&&&&&&&&&&&&&&&& 回调
err&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 异常
resolvedPath&&&&&&&&&&&&&& 真实地址
var cache = {'/etc':'/private/etc'};
fs.realpath('/etc/passwd', cache, function (err, resolvedPath) {
& if (err)
& console.log(resolvedPath);
fs.realpath = function realpath(p, cache, cb) {
& if (!util.isFunction(cb)) {
&&& cb = maybeCallback(cache);
&&& cache =
& // make p is absolute
& p = pathModule.resolve(p);
& if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
&&& return process.nextTick(cb.bind(null, null, cache[p]));
& var original = p,
&&&&& seenLinks = {},
&&&&& knownHard = {};
& // current character position in p
& // the partial path so far, including a trailing slash if any
& // the partial path without a trailing slash (except when pointing at a root)
& // the partial path scanned in the previous round, with slash
& start();
& function start() {
&&& // Skip over roots
&&& var m = splitRootRe.exec(p);
&&& pos = m[0].
&&& current = m[0];
&&& base = m[0];
&&& previous = '';
&&& // On windows, check that the root exists. On unix there is no need.
&&& if (isWindows && !knownHard[base]) {
&&&&& fs.lstat(base, function(err) {
&&&&&&& if (err) return cb(err);
&&&&&&& knownHard[base] =
&&&&&&& LOOP();
&&& } else {
&&&&& process.nextTick(LOOP);
& // walk down the path, swapping out linked pathparts for their real
& // values
& function LOOP() {
&&& // stop if scanned past end of path
&&& if (pos &= p.length) {
&&&&& if (cache) cache[original] =
&&&&& return cb(null, p);
&&& // find the next part
&&& nextPartRe.lastIndex =
&&& var result = nextPartRe.exec(p);
&&& previous =
&&& current += result[0];
&&& base = previous + result[1];
&&& pos = nextPartRe.lastI
&&& // continue if not a symlink
&&& if (knownHard[base] || (cache && cache[base] === base)) {
&&&&& return process.nextTick(LOOP);
&&& if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
&&&&& // known symbolic link. no need to stat again.
&&&&& return gotResolvedLink(cache[base]);
&&& return fs.lstat(base, gotStat);
& function gotStat(err, stat) {
&&& if (err) return cb(err);
&&& // if not a symlink, skip to the next path part
&&& if (!stat.isSymbolicLink()) {
&&&&& knownHard[base] =
&&&&& if (cache) cache[base] =
&&&&& return process.nextTick(LOOP);
&&& // stat & read the link if not read before
&&& // call gotTarget as soon as the link target is known
&&& // dev/ino always return 0 on windows, so skip the check.
&&& if (!isWindows) {
&&&&& var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
&&&&& if (seenLinks.hasOwnProperty(id)) {
&&&&&&& return gotTarget(null, seenLinks[id], base);
&&& fs.stat(base, function(err) {
&&&&& if (err) return cb(err);
&&&&& fs.readlink(base, function(err, target) {
&&&&&&& if (!isWindows) seenLinks[id] =
&&&&&&& gotTarget(err, target);
& function gotTarget(err, target, base) {
&&& if (err) return cb(err);
&&& var resolvedLink = pathModule.resolve(previous, target);
&&& if (cache) cache[base] = resolvedL
&&& gotResolvedLink(resolvedLink);
& function gotResolvedLink(resolvedLink) {
&&& // resolve the link, then start over
&&& p = pathModule.resolve(resolvedLink, p.slice(pos));
&&& start();
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具下次自动登录
现在的位置:
& 综合 & 正文
Windows node.js npm install express -g Cannot find module ‘express’
Method 1:
在当前app目录下执行npm install express
Method 2:
1. 当前用户环境变量添加NODE_PATH并设置路径为C:\Users\YOUR_USER_NAME\AppData\Roaming\npm\node_modules
2. 将%NODE_PATH%添加到当前用户环境变量path中
Reference:
&&&&推荐文章:
【上篇】【下篇】114网址导航

参考资料

 

随机推荐