我有两个dynamic链接的URL,我试图联合起来创build一个完整的URL。 由于我不知道要join的确切string,我想使用pathjoin库来避免stringjoin错误,如"http://www.mysite.com/frIEnds//12334.HTML" ,有额外的斜线等
我正在使用Node.Js在windows 7家庭计算机上工作。
我尝试使用path库的path.join(...) ,但是因为我在windows上,它将所有的正斜杠反向,这显然是不正确的一个URL。 例:
var path = require('path'),joined = path.join('http://www.mysite.com/','/frIEnds/family'); console.log(joined); // Prints: // http:www.miserable.comfrIEndsfamily
我可以在windows上使用哪些函数或库来连接URL的片段? 或者,我怎么能得到path.join强制UNIX风格的分隔符,而不是windows的?
Nginx到node.Js – 传递参数
如何上传nodeJs项目或在live服务器上安装nodeJs和npm模块
NodeJs,windows,wmic stdin
使用Forever运行我的Node应用程序不会logging任何输出
在与本地networking服务器通信的电子应用中实现socket.io
如何在bash中禁止npm WARN弃用的消息
增加与node.Js / socket.io的最大连接
在windows x86中开始使用NODE.Js
在windows上通过npm安装grunt-cli软件包失败
在Nginx.conf.erb中使用Heroku服务器URL进行负载平衡
URL不是文件系统路径,所以路径中的任何内容都不适用于您的需求。 我建议使用url.resolve()如果它满足您的需求,或url.format()如果不是。 请注意,您不能简单地在您的代码中替换path.join() ,因为它们需要不同的参数。 仔细阅读文档。
url.resolve是不是我认为这将是乍一看…注意如何在第二个例子丢弃dir1
url.resolve('/one/two/three','four') // '/one/two/four' url.resolve('http://domain.com/dir1','dir2'); // 'http://domain.com/dir2 (dir1 is gone!)
这是我写的一个简单的连接方法:
var _s = require('underscore.string'); /** * Joins part1 and part2 with optional separator (defaults to '/'),* and adds the optional prefix to part1 if specifIEd * * @param {string} part1 * @param {string} part2 * @param {string} [separator] - defaults to '/' * @param {string} [prefix] - defaults to empty... pass in "http://" for urls if part1 might not already have it. * @returns {string} */ exports.joinWith = function(part1,part2,separator,prefix) { var join = ""; var separatorsFound = 0; if( !separator) { separator = "/"; } if( !prefix ) { prefix = ""; } if( _s.endsWith( part1,separator ) ) { separatorsFound += 1; } if( _s.startsWith( part2,separator) ) { separatorsFound += 1; } // See if we need to add a join separator or remove one (if both have it already) if( separatorsFound === 0 ) { join = separator; } else if( separatorsFound === 2 ) { part1 = part1.substr(0,part1.length - separator.length ); } // Check if prefix is already set if( _s.startsWith( part1,prefix ) ) { prefix = ""; } return prefix + part1 + join + part2; }
样品:
// TEST console.log( exports.joinWith('../something','else') ); console.log( exports.joinWith('../something/','else') ); console.log( exports.joinWith('something','else',"-") ); console.log( exports.joinWith('something','up',"-is-") ); console.log( exports.joinWith('something-is-',"-is-") ); console.log( exports.joinWith('../something/','/else') ); console.log( exports.joinWith('../something/','/else',"/") ); console.log( exports.joinWith('somedomain.com','/somepath',"/","http://") ); console.log( exports.joinWith('',"/") );
OUTPUT:
../something/else ../something/else something-else something-is-up something-is-up ../something/else ../something/else somedomain.com/somepath http://somedomain.com/somepath /somepath
总结以上是内存溢出为你收集整理的在Windows上的NodeJS上使用path.join来创buildURL全部内容,希望文章能够帮你解决在Windows上的NodeJS上使用path.join来创buildURL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)