在Windows上的NodeJS上使用path.join来创buildURL

在Windows上的NodeJS上使用path.join来创buildURL,第1张

概述在Windows上的NodeJS上使用path.join来创buildURL

我有两个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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1286670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存