草庐IT

node_contextify

全部标签

javascript - Node/Javascript 中的 RegEx - 如何获取模式匹配边界?

目前,我通过find()在Javascript/Node中使用正则表达式,这适用于查找模式的开头。但我也希望能够找出模式的结束位置。这可能吗? 最佳答案 如果您使用RegExp.exec()方法,您可以获得所需的信息。varpattern=/\d+\.?\d*|\.\d+/;varmatch=pattern.exec("thenumberis7.5!");varstart=match.index;vartext=match[0];varend=start+text.length;/\d+\.?\d*|\.\d+/等同于newRegE

javascript - 在 Node.js 中等待异步函数返回

假设,我在Node.js中有一个异步函数,基本上是这样的:varaddAsync=function(first,second,callback){setTimeout(function(){callback(null,first+second);},1*1000);};现在我当然可以以异步方式调用这个函数:addAsync(23,42,function(err,result){console.log(result);//=>65});我想知道的是,您是否可以通过某种方式同步调用此函数。为此,我想要一个包装器函数sync,它基本上执行以下操作:varsync=function(fn,pa

javascript - Node --debug-brk app.js 无法运行

我正在尝试调试我的应用程序,但当我使用--debug-brk标志时,某些东西阻止了应用程序实际启动。这是我通常的输出:/usr/local/bin/nodeapp.jsExpressserverlisteningonport3000ConnectedtodatabaseHackRegDb这是我运行--debug-brk时发生的情况(在代码中的一个断点处不会在初始启动时命中)/usr/local/bin/node--debug-brk=59763app.jsdebuggerlisteningonport59763看,没有“服务器监听”部分。代码明明是一样的,吐出之前也没有断点。作为引用,

javascript - Node.js 的异步调用和递归

我希望在递归函数完全完成时执行回调,该函数可以持续不确定的时间量。我正在为异步问题而苦苦挣扎,希望能在这里得到一些帮助。使用request模块的代码如下:varstart=function(callback){request.get({url:'aaa.com'},function(error,response,body){varstartingPlace=JSON.parse(body).id;recurse(startingPlace,callback);});};varrecurse=function(startingPlace,callback){request.get({ur

javascript - 在 Node.js 中完成 for 循环后如何运行函数?

假设我在Node.js中有一个如下所示的结构:for(i=0;i那么如何确保在forloop完成后触发after_forloop()函数?如果你想看看我实际在做什么:varhttp=require('http');http.createServer(function(req,res){res.writeHead(200,{'Content-Type':'text/plain'});res.end('HelloWorld\n');}).listen(1337,'127.0.0.1');console.log('Serverrunningathttp://127.0.0.1:1337/')

javascript - 如何不覆盖node.js中的文件

如果文件存在而不是覆盖它,我想让这段代码更改文件名。varfileName='file';fs.writeFile(fileName+'.txt','Randomtext',function(err){if(err)throwerr;console.log('It\'ssaved!');});类似于:varfileName='file',checkFileName=fileName,i=0;while(fileExists(checkFileName+'.txt')){i++;checkFileName=fileName+'-'+i;}//file-1,file-2,file-3...

javascript - 在 Node.js 中高效计算 n 选择 k

我在Node.js服务器上有一些性能敏感代码需要计算组合。来自thisSOanswer,我使用这个简单的递归函数来计算n选择k:functionchoose(n,k){if(k===0)return1;return(n*choose(n-1,k-1))/k;}因为我们都知道迭代几乎总是比递归快,所以我根据multiplicativeformula编写了这个函数:functionchoosei(n,k){varresult=1;for(vari=1;i我跑了几个benchmarks在我的机器上。以下是其中一个的结果:Recursivex178,836ops/sec±7.03%(60run

javascript - node.js中处理 `exports`的建议

理论:node.js吸引我的地方之一是将它用作命令行工具。理论上,我可以用Javascript编写库并将它们放在我的~/.node_libraries目录中,然后我可以重用这些库。例如,我在~/.node_libraries中有一个text.js,它有一堆我反复使用的与文本相关的函数(depunctuate()、tokenize_text()之类的东西)。这样做的好处是我可以在我的命令行脚本和服务器端使用相同的text.js文件。现在我正在使用Python进行所有文本处理工作,但我只想坚持使用一种语言。练习:AFAICT,为了创建一个node.js模块,我必须将我想要的所有内容附加到e

javascript - 在 node.js 中共享对象并避免全局变量

在不将db变量转换为全局?varmongo=require('mongoskin'),db=mongo.db(config.db.adress);app.use(function(req,res,next){db.open(function(err,data){(err)?res.send('Internalservererror',500):next();});});//Settingupcontrollershereapp.post('/users',require('./controllers/users').create);我有PHP背景,开始考虑依赖注入(inject),但我

javascript - 在 Node.js 中替换 util.pump()

我最近从0.8~更新到最新版本的Node.js(1.10~),我在运行时收到一条消息说:util.pump()isdeprecated.UsereadableStream.pipe()instead.我曾尝试将我的函数切换为readableStream.pipe(),但我认为它的工作方式不同。所以我有三个问题:为什么不推荐使用util.pump?如何切换到readableStream.pipe()?或者3.如何关闭此警告?这是我使用它的代码(有mustache)varstream=mu.compileAndRender(template_file,json_object_from_db