小编dis*_*cer的帖子

如何在Node.js中自动重新加载文件?

关于如何在Node.js中实现文件自动重载的任何想法?每次更改文件时,我都厌倦了重启服务器.显然Node.js的require()功能如果已经被要求就不会重新加载文件,所以我需要做这样的事情:

var sys     = require('sys'), 
    http    = require('http'),
    posix   = require('posix'),
    json    = require('./json');

var script_name = '/some/path/to/app.js';
this.app = require('./app').app;

process.watchFile(script_name, function(curr, prev){
    posix.cat(script_name).addCallback(function(content){
        process.compile( content, script_name );
    });
});

http.createServer(this.app).listen( 8080 );
Run Code Online (Sandbox Code Playgroud)

app.js文件中我有:

var file = require('./file');
this.app = function(req, res) { 
    file.serveFile( req, res, 'file.js');  
}
Run Code Online (Sandbox Code Playgroud)

但这也没有用 - 我在process.compile()声明中得到一个错误,说没有定义'require'.process.compile正在评估app.js,但对node.js全局变量没有任何线索.

javascript node.js

415
推荐指数
14
解决办法
26万
查看次数

如何在JavaScript Regexp中捕获任意数量的组?

我希望这行JavaScript:

"foo bar baz".match(/^(\s*\w+)+$/)
Run Code Online (Sandbox Code Playgroud)

返回类似的东西:

["foo bar baz", "foo", " bar", " baz"]
Run Code Online (Sandbox Code Playgroud)

但它只返回最后捕获的匹配:

["foo bar baz", " baz"]
Run Code Online (Sandbox Code Playgroud)

有没有办法获得所有捕获的匹配?

javascript regex repeat capturing-group

77
推荐指数
3
解决办法
4万
查看次数

什么时候`componentDidMount`被解雇?

这是我对React的一个反复出现的问题.componentDidMount保证在第一次渲染组件时触发该方法,因此它似乎是一个自然的地方,可以进行高度和偏移等DOM测量.但是,很多时候,在组件生命周期的这个阶段,我收到了错误的样式读数.该组件在DOM,当我与调试器打破,但它尚未在屏幕上绘制.我的问题是宽度/高度设置为100%的元素.当我进行测量时componentDidUpdate- 一切正常,但此方法不会在组件的初始渲染时触发.

所以我的问题是 - 什么时候被componentDidMount解雇,因为在完成所有浏览器绘制之后它显然没有被触发.

编辑: 此Stackoverflow问题处理相同的主题:

它还引用了这个解释会发生什么的github对话

reactjs react-dom

31
推荐指数
3
解决办法
2万
查看次数

是否重新编译了javascript中的闭包

假设我们有这段代码(暂时忘记原型):

function A(){
  var foo = 1;
  this.method = function(){
    return foo;
  }
}
var a = new A();
Run Code Online (Sandbox Code Playgroud)

是每次运行函数A时重新编译的内部函数?或者更好(以及为什么)这样做:

function method = function(){ return this.foo; }
function A(){
  this.foo = 1;
  this.method = method;
}
var a = new A();
Run Code Online (Sandbox Code Playgroud)

或者javascript引擎是否足够智能,不会每次都创建一个新的"方法"功能?特别是Google的v8和node.js.

此外,欢迎任何关于何时使用哪种技术的一般性建议.在我的具体示例中,使用第一个示例非常适合我,但我知道外部函数将被多次实例化.

javascript performance closures

16
推荐指数
1
解决办法
546
查看次数

防止文本溢出HTML中的填充容器

我有这种情况:

<div style="width: 100px; padding: 5px 15px 5px">Some text longer than 100px</div>
Run Code Online (Sandbox Code Playgroud)

如果我设置溢出:隐藏在div上,文本仍然会出现在右边的15px填充区域之外:

++----------------------------+------+
++----------------------------+------+
||This text should stop here -| but i|
++----------------------------+------+
++----------------------------+------+
Run Code Online (Sandbox Code Playgroud)

可以在不添加额外元素来保存文本的情况下完成此操作.任何浏览器中的任何解决方案都可以,我只是想知道它是否可行.

html css html5 css3

16
推荐指数
3
解决办法
3万
查看次数

单词比较算法

我正在为我正在进行的项目执行CSV导入工具.客户端需要能够在excel中输入数据,将它们导出为CSV并将它们上传到数据库.例如,我有这个CSV记录:

   1,   John Doe,     ACME Comapny   (the typo is on purpose)
Run Code Online (Sandbox Code Playgroud)

当然,这些公司被保存在一个单独的表中并与外键相关联,因此我需要在插入之前发现正确的公司ID.我计划通过将数据库中的公司名称与CSV中的公司名称进行比较来实现此目的.如果字符串完全相同,则比较应返回0,并返回一些随着字符串变得更大而变大的值,但是strcmp不会在此处删除它,因为:

"Acme公司"和"Acme Comapny"应该有一个非常小的差异指数,但"Acme公司"和"Cmea Mpnyaco"应该有一个非常大的差异指数或"Acme公司"和"Acme Comp.".即使字符数不同,也应该有一个小的差异索引.此外,"Acme Company"和"Company Acme"应返回0.

因此,如果客户端在输入数据时输入类型,我可以提示他选择他最想插入的名称.

是否有一个已知的算法来做到这一点,或者我们可以发明一个:)?

string algorithm compare similarity cpu-word

14
推荐指数
2
解决办法
2万
查看次数

在Mako中将字符串标记为安全

我正在使用带有Mako模板的Pylons,我想避免一直打字:

${ h.some_function_that_outputs_html() | n }
Run Code Online (Sandbox Code Playgroud)

我想以某种方式标记函数,或者将变量标记为安全(您可以在Django中执行此操作),因此我不必一直使用pipe-en.有任何想法吗?

python pylons mako

11
推荐指数
1
解决办法
4586
查看次数

Mac OS X终端中的Python unicode

有人可以向我解释这个奇怪的事情:

在python shell中我输入以下西里尔字符串:

>>> print '?????'
?????
Run Code Online (Sandbox Code Playgroud)

但是当我键入:

>>> print u'?????'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

由于第一个tring正确出来,我估计我的OS X终端可以代表unicode,但事实证明它不能在第二种情况下.为什么?

python unicode macos terminal

8
推荐指数
3
解决办法
2万
查看次数

Javascript日期差异错误?

编辑:这不是马丁指出的错误.我只是穿越夏令时,因此1小时差异.

我想计算"2010年3月29日"和"2010年3月9日"之间的天数差异,所以我有以下代码:

((new Date(2010, 2, 29)).getTime() - (new Date(2010, 2, 8)).getTime()) / 86400000
Run Code Online (Sandbox Code Playgroud)

86400000是一天中的毫秒数,并且以毫秒为单位返回日期之间的差异,因此这应该有效.只是它并不完全.我明白了

20.958333333333332
Run Code Online (Sandbox Code Playgroud)

这两个日期之间的差异是错误的.它应该是1814400000(21天86400000),但实际上是1810800000.

此外,如果我改变差异:

((new Date(2010, 2, 28)).getTime() - (new Date(2010, 2, 7)).getTime()) / 86400000
Run Code Online (Sandbox Code Playgroud)

相同的差异,只有一天回来,我得到正常的结果.

只有当我们试图得到(xy)x在2010年3月29日之后且y在2010年3月29日之前时,才会发生这种情况.

我在Mac上的Safari 4和Firefox 3.6以及Windows 7上的IE 8中得到了这个.没有尝试过其他浏览器.

我做错了什么或这是一个已知的错误?

javascript date

8
推荐指数
1
解决办法
2209
查看次数

用于在PHP中解析CSV的正则表达式

我已设法使用此正则表达式拆分CSV文件:"/,(?=(?:[^ \"] \"[^ \"] \")(?![^ \"] \"))/"

但我最终得到了一个包含开头和结尾双引号的字符串数组.现在我需要一个正则表达式来删除分隔符双引号的字符串.

据我所知,CSV格式可以用双引号封装字符串,并且所有已经是字符串一部分的双引号都会加倍.例如:

我的"其他"猫

"我的""其他""猫"

我基本上需要的是一个正则表达式,它将用一系列(N/2 - 向下舍入)双引号替换N个双引号的所有序列.

或者,还有更好的方法 ?提前致谢.

php regex csv

7
推荐指数
1
解决办法
1万
查看次数