Tag: string

更新/添加基于另一个string的string值

我正在尝试使用Node.js创build手动浏览器cookie模拟。 基本上我有两个string,一旦包含当前的cookie,另一个包含新的或更新的值被添加到cookie。 我想通过replace或添加值来更新旧string。 我怎样才能达到这个通过JavaScript? 例如: PREF=ID=2191324fe41c6152:FF=0:TM=1320223272:LM=1320223272:S=H6-vdbEpgEzHAknb; Foo=kfjaofjiof382f3gio; expires=Fri, 01-Nov-2013 08:41:12 GMT; path=/; HTTPonly; 更新 PREF=ID=435:FF=2:TM=1320223272:LM=1320223272:S=zzHAknb; Name=23; expires=Fri, 01-Nov-2013 08:41:12 GMT; path=/; HTTPonly; 返回 PREF=ID=435:FF=2:TM=1320223272:LM=1320223272:S=zzHAknb; Name=23; Foo=kfjaofjiof382f3gio; expires=Fri, 01-Nov-2013 08:41:12 GMT; path=/; HTTPonly;

在Node.js中处理一个100MB的文件

基本上我有一个文件,比如说100mb.qs ,我需要通过下面的函数传递它的全部内容: function process(in){ var out = JSON.stringify(require('querystring').parse(in)); return out; } 然后用结果replace文件的内容。 我想我得把它stream出来,所以… require('fs').createReadStream('1mb.qs').pipe( /* ??? */ ) 我该怎么做?

复杂的URL查询string规范

我一直在使用Node.js的查询parsing器进行试验,并且能够将一些非常复杂的查询parsing为深度嵌套的对象和数组。 一些例子: 查询string: 1) '?$or=foo&$or=bar' 2) '?$or[foo]=bar' 3) '?$or[0][foo]=bar&or[1][bar]=baz' 4)'?$or[0][foo]=bar&or[1][bar][]=baz&or[1][bar][]=bing&or[1][bar][]=bang' 节点将其parsing为: 1) { $or: ['foo', 'bar'] } 2) { $or: { foo: 'bar' } } 3) { $or: [ { foo: 'bar' }, { bar: 'baz' } ] } 4) { $or: [ { foo: 'bar' }, { bar: ['baz', 'bing', 'bang'] } ] } […]

发送Javascript代码到客户端不能正确转义

我在一个我正在构build的小系统中遇到了一个编码问题。 在HTML中,这个脚本被加载 <script src="http://localhost:8000/serving/dk-711218"></script> 通常我不能访问HTML,所以一切都必须在JavaScript文件内完成。 服务器端脚本是在Node.js中创build的,它根据可定制的XML文件中的一些设置返回代码段。 例如,当显示图像时,系统返回一个简单的图像 <img src="mypicture.jpg" /> 如果是文本,则返回 <div class="myClass">This is a test</div> 如果他们有特殊的行为,这个代码也包括在内。 这些部件按预期工作。 这些代码块驻留在许多类中,并根据需要返回,以便逐渐构build代码。 到现在为止还挺好。 问题是返回SWFobject库代码,因为它似乎在运行中损坏代码。 所有的代码已经被转义并且使用encodeURIComponent编码,以便系统只需要解码和unescape。 但validation失败。 以下是编码/转义前几行的示例: var%2520swfobject%253Dfunction%2528%2529%257Bvar… 以下是在访问该页面时,Firefox源代码窗口中的一段SWFObject的样子: 下面是一个解码后的SWFObject在同一个窗口中的样子: 这发生在几个地方,这些事件的共同点是,它看起来像不明原因的小于字符是不同的解释。 这是视图渲染器,我无法弄清楚如果问题是在代码中引起的,或者在渲染代码时。 任何想法是什么导致这种行为? 或者这样包含代码的时候可能会提供一些最佳实践方面的build议? 回应意见: 尝试JSON.stringify 我已经尝试了JSON解决scheme,它也有诀窍! 我所做的就是像以前一样预先处理包含的代码,使用一个我用两个input字段和两个input字段之间的JSON.stringify命令构build的小工具。 这导致了returnvar的内容: Module.prototype.opens = function () { var returnvar = "var swfobject=function(){var D=\"undefined\",r=\"object\",S=\"Shockwave Flash\",W=\"ShockwaveFlash.ShockwaveFlash\",q=\"application/x-shockwave-flash\",R=\"SWFObjectExprInst\"… etc. 并使用JSON.parse在渲染器中再次纠正它: router.get('/serving/:id', function (req, res) { […]

正确解码Angular 1.4 $ httpParamSerializer querystring?

这是我想要序列化的对象: {"cars": [ {"make":"volkswagen","model":"golf"}, {"make":"volkswagen","model":"polo"}, {"make":"audi","model":"a3"}, {"make":"bmw","model":"1-series"}, {"make":"renault","model":"espace"} ]} 之前,我使用jQuery $.param()函数和qs库在node.js上解码它。 而且一切正常,我不需要自己parsing任何东西。 现在,我决定使用新的Angular 1.4服务$httpParamSerializer来摆脱jQuery。 解码后,而不是数组中的objects ,我得到strings : '{"make":"volkswagen","model":"golf"}' 我怎样才能正确解码使用$httpParamSerializer服务创build的查询string,而不调用数组中的每个对象的JSON.parse ? 这是$.param查询string: cars%5B0%5D%5Bmake%5D=volkswagen&cars%5B0%5D%5Bmodel%5D=golf&cars%5B1%5D%5Bmake%5D=volkswagen&cars%5B1%5D%5Bmodel%5D=polo&cars%5B2%5D%5Bmake%5D=audi&cars%5B2%5D%5Bmodel%5D=a3&cars%5B3%5D%5Bmake%5D=bmw&cars%5B3%5D%5Bmodel%5D=1-series&cars%5B4%5D%5Bmake%5D=renault&cars%5B4%5D%5Bmodel%5D=espace&demo%5Bsome%5D=bar 这里是$httpParamSerializer querystring: cars=%7B%22make%22:%22volkswagen%22,%22model%22:%22golf%22%7D&cars=%7B%22make%22:%22volkswagen%22,%22model%22:%22polo%22%7D&cars=%7B%22make%22:%22audi%22,%22model%22:%22a3%22%7D&cars=%7B%22make%22:%22bmw%22,%22model%22:%221-series%22%7D&cars=%7B%22make%22:%22renault%22,%22model%22:%22espace%22%7D&demo=%7B%22some%22:%22bar%22%7D`

String.prototype.includes / ES6中包含的区别? 那怎么样?

我想知道哪些方法将成为标准。 从我看到的是,两种方法产生类似的结果,但我不知道为什么有两个版本/别名。 他们之间有区别吗? 另外,为什么ES6使用.has时它可以使用.contains或.includes服务多个目的下的一个名字。 我知道.has不用于string。 从我的testing支持: | Contains Includes Chrome | No Yes Firefox | Yes Yes NodeJS | Yes No

最好在nodejs请求中发送base64编码的JSON

我有一些base64编码的JSON,例如: eyJiYXIiOiJibGFuIn0= (这只是{"bar": "blan"} 。 我正在使用axios做一个http请求,虽然我愿意使用另一个库或http如果需要的话。 我希望能够以尽可能less的步骤/尽可能有效地将数据作为JSONstring传输。 目前我做: axios({ url, method: "POST", data: new Buffer(data, "base64").toString(), headers: { "Content-type": "application/json", }, }) 但是,这将整个string从缓冲区读入内存,所以我想知道是否有更好的方法。 如果我不使用toString它不起作用,并在服务器上的JSONparsing器响应: Unexpected token ' 。 有没有更好的方式来传输base64编码的string的数据?

有没有办法缩短string唯一ID的数组,同时仍然确保独特性?

我有一个来自Firebase数据库的string唯一ID数组,其中一个如下所示: QXgZI3JB72Zf1qzeawIdxHSsPa62 我想把这些ID打印给用户,但是首先我想首先把ID缩短到最less7个字符左右,但是如果两个缩短的ID最终变成相等的话,那么这个ID就会超过这个长度。 这样,如果有人想要引用一个特定的ID,他们可以使用缩短的版本,而不会意外地指多个东西。 有什么办法可以做到这一点? 为了更好地了解我在说什么,请参阅git命令git rev-parse ( docs ),该文件具有–short标志,它将一个提交散列切割成至less7个字符长(但将允许它如果不再是独一无二的,则可以更长一些): 而不是输出对象名称的完整SHA-1值,尝试将它们缩写为更短的唯一名称。

JS / JQUERY不更新string数组值

我正在面对一个我正在创build的Web应用程序的问题。 我使用node.js作为后端,服务器发送(使用socket.io )这样的string“ 0010000110 0 ”。 在客户端我有: $(document).on("pageinit", function(){ var socket = io.connect('http://localhost:8080'); var tmpData = []; socket.on('recData', function(data){ tmpData = data; //here I put the received string in the tmpData array }); //checking for the string array state $("#deskLight-1").on("vclick", function(){ if(tmpData[2] == '1'){ tmpData[2] = '0'; alert(tmpData); } else if(tmpData[2] == '0'){ tmpData[2]='1'; alert(tmpData); […]

如何使用nodejs在控制台中打印一个utf8string

我想在控制台中使用nodejs在保加利亚打印一个string。 我有一个index.js文件,它可以: console.log('Текст на български.'); 当我在控制台中运行它:node index.js它只打印 – '??????????' 我正在使用Webstorm,并将IDE和项目文件编码设置设置为utf8。 我也试过: var strInBulgarian = 'Текст на български.'; console.log(strInBulgarian.toString('utf8')); 同样的结果。 如果我在nodejs REPL中运行以下命令,我会得到正确的结果: console.log('Текст на български.'); 这导致我相信,我得到'???????' 是由于文件编码,但它设置为utf8。 有任何想法吗? 这里是Webstorm中设置的截图。 嗯,现在我把所有的设置改为UTF8保加利亚文中的文字在我的评论中改为'?????' 这之前还好。 有些是绝对不对的。 当我从Notepad ++创build一个index.js文件,并将编码设置为utf8时,我没有任何问题。 Webstorm的设置不正确。