小编sid*_*son的帖子

在Pug(Jade)中发表评论?

你如何阻止Pug模板引擎中的注释代码?

我知道如何评论一条线:

//-doesn't show
Run Code Online (Sandbox Code Playgroud)

但我不想写这样的完整HTML评论:

<!--
    no show
-->
Run Code Online (Sandbox Code Playgroud)

pug

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

NodeJS:将本地文件发送/上传到远程服务器

我使用Winston模块为我的离线应用创建了每日日志文件.我现在需要能够通过POST将该文件发送或上传到远程服务器(该部分已存在)

我知道我需要以块的形式编写文件,因此它不会占用内存所以我使用fs.createReadStream但是我似乎只得到503响应,即使只发送示例文本.

编辑

我发现接收器期望数据被命名为"数据".我删除了createReadSteam,因为我只能使用'application/x-www-form-urlencoded'和同步fs.readFileSync.如果我在php服务器上将其更改为'multipart/form-data',我将能够再次使用createReadStream,或者只有在我更改为物理上传json文件时才能使用.

过去几周我一直在学习节点,所以任何指针都会感激不尽.

var http = require('http'),
    fs = require('fs');

var post_options = {
    host: 'logger.mysite.co.uk',
    path: '/',
    port: 80,
    timeout: 120000,
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
}

var sender = http.request(post_options, function(res) {
    if (res.statusCode < 399) {
        var text = ""
        res.on('data', function(chunk) {
            text += chunk
        })
        res.on('end', function(data) {
            console.log(text)
        })
    } else {
        console.log("ERROR", res.statusCode)
    }
})

var POST_DATA = 'data={['
POST_DATA += fs.readFileSync('./path/file.log').toString().replace(/\,+$/,'')
POST_DATA += ']}' …
Run Code Online (Sandbox Code Playgroud)

http node.js

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

如何使用 EXTEND_ESLINT 环境变量扩展 CRA ESLint 规则

最近 Facebook 的 Create React App (CRA) 发布了一项新功能,允许您扩展他们的基本 ESLint 规则。

我们认识到,在某些情况下,需要进一步定制。现在可以通过将 EXTEND_ESLINT 环境变量设置为 true 来扩展基本 ESLint 配置。 设置你的编辑器

这是给出的示例,但没有详细信息,例如文件名或“共享配置”是什么。

{
    "eslintConfig": {
        "extends": ["react-app", "shared-config"],
        "rules": {
            "additional-rule": "warn"
        },
        "overrides": [
            {
                 "files": ["**/*.ts?(x)"],
                 "rules": {
                     "additional-typescript-only-rule": "warn"
                 }
             }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

该功能是通过添加环境变量启用的。

EXTEND_ESLINT=true
Run Code Online (Sandbox Code Playgroud)

但在文档页面上它也没有提供任何信息如何使用它 -高级配置

我已将他们的示例代码添加到我的构建文件中,.eslintrc.json但我收到了构建错误:

"错误:.eslintrc.json 中的 ESLint 配置无效:- 意外的顶级属性 "eslintConfig"。 "

有没有人让这个工作?该文件是否需要导出模块?

javascript npm eslint create-react-app

10
推荐指数
1
解决办法
3620
查看次数

防止DOM XSS

我们最近加入了其他人的代码,这些代码已经过测试,并且在DOM XSS攻击中失败了.基本上,url片段被直接传递到jQuery选择器并启用JavaScript注入,如下所示:

"http://website.com/#%3Cimg%20src=x%20onerror=alert%28/XSSed/%29%3E)"
$(".selector [thing="+window.location.hash.substr(1)+"]");
Run Code Online (Sandbox Code Playgroud)

问题是这是在他们的脚本中发生的,并且需要大量的回归测试来修复,例如,如果我们转义数据,如果语句将不再返回true,因为数据将不匹配.

有问题的JavaScript文件在构建时从许多较小的文件连接起来,因此修复起来更加困难.

有没有办法用一些全局代码来防止这些DOM XSS攻击,而无需经历和调试每个实例.


我建议在脚本的顶部添加一个小的正则表达式来检测XSS攻击中使用的常见字符,如果它返回true则简单地终止它.

 var xss = window.location.href.match(/(javascript|src|onerror|%|<|>)/g);

if(xss != null) return;
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但我对解决方案并不十分满意.有没有人能提供更好的解决方案或任何有用的见解?

javascript xss

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

将所有图层添加到leafletjs贴图时进行回调

情况:我正在向我的地图添加一个新的geoJson图层,我想在添加它们之后为所有标记设置动画,每个标记之间稍有延迟.API似乎可以执行所有操作但是在添加最后一个标记时提供回调!

示例代码

L.geoJson(data, {      
    onEachFeature: function (feature, layer) {
        console.log(feature, layer);
    }
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

我想要的是什么

 L.geoJson(data, {      
    onEachFeature: function (feature, layer) {
        console.log(feature, layer);
    },
    complete:function(layers){
        console.log(layers);
    }
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

我知道每个图层都有一个onAdd事件,但是对于一个layerGroup来说有类似的吗?

谢谢

javascript leaflet

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

Handlebars.js - 在每个循环中获取父上下文,if语句和子对象

我理解如何横跨Handlebars中的数据源,但我偶然发现了一个我无法解决的情况.

使用"../"可以到达父模板范围,但是当迭代对象的子对象时,它似乎返回对象而不是子对象.

{{#each content.items}}
{{#if prop}}
<p>{{prop}} + {{../../variable}}</p>
{{/if}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

如果你遍历一个名为'content'的对象,上面的代码片段工作正常,但是一旦你遍历它的孩子,'content.items'它就不再返回正确的范围.

这是一个演示这个问题的小提琴.http://jsfiddle.net/sidonaldson/MDdn2/

任何人都可以解释什么是错的?

javascript handlebars.js

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

带有Timber RSS Feed问题的自定义存档页面

我在Wordpressusing Timber和Route方法中构建了一个自定义归档页面.页面运行良好并显示组合,Custom Post Types但{url}/feed处的Feed不存在.

注意:以前的答案已经过编辑,可以解决令人困惑的问题.

// create CPT (x 3)
register_post_type($name, array(
  'label' => 'custom1',
  'public' => true,
  'capability_type' => 'page',
  'supports' => array( 'title', 'author', 'excerpt', 'revisions', 'thumbnail'),
  'taxonomies' => array('post_tag'),
  'has_archive' => true
));

// CPT route
Routes::map('test/filter/:filter', function($params){
    $query = array(
      'post_type' => array('custom1', 'custom2', 'custom3' )
    );
    $filter = $params;
    Routes::load('archive.php', $filter, $query, 200);
});

// paging CPT route
Routes::map('test/filter/:filter/page/:page', function($params){
    $query = array(
      'post_type' => array('custom1', 'custom2', 'custom3' ),
      'paged' …
Run Code Online (Sandbox Code Playgroud)

php wordpress timber

6
推荐指数
1
解决办法
879
查看次数

如何使用哈希导航和html5历史记录停止jQuery Mobile?

我正在使用jQuery Mobile创建一个小型Web应用程序,我要停止更新地址栏.这样,手机上的后退按钮就不再起作用,用户无法通过URL跳到应用程序的中间位置.

我已经阅读了文档,但我无法理解我需要哪个设置,但我知道它需要进入这里:

$(document).on("mobileinit", function() {
    //disable history?
});
Run Code Online (Sandbox Code Playgroud)

jquery-mobile

4
推荐指数
1
解决办法
2213
查看次数

EXIFTOOL-从文件名设置日期时间

我有很多以日期格式命名的照片,但EXIF日期不匹配。

例如 2016-12-16_20-20-29.jpg

EXIFTOOL我运行它们几乎可以覆盖日期,但它与确切的日期格式不匹配。

exiftool "-datetimeoriginal<filename" ./
Run Code Online (Sandbox Code Playgroud)

这会将日期设置为正确的日历日,但忽略时间。

exiftool "-datetimeoriginal<filename" -d "%Y-%M-%D_%H-%M-%S.%%e" ./
Run Code Online (Sandbox Code Playgroud)

我相信-d参数设置了一种数据格式,但是这返回为错误Warning: Error parsing time in ExifIFD:DateTimeOriginal (PrintConvInv)

这是使用正确的方法吗?

exif exiftool

4
推荐指数
2
解决办法
9382
查看次数

Node.js + request - 保存远程文件并在响应中提供

我理解如何使用Node.js +请求加载远程文件,然后我可以读取它并返回png二进制blob.有一个优雅的方式来做一个请求(甚至一个班轮)

就像是:

http.createServer(function(req, res) {
    res.writeHead(200, {
        'Content-Type': 'image/png'
    });
    var picWrite = fs.createWriteStream(local);
    var picFetch = fs.createReadStream(local);
    picStream.on('close', function() {
        console.log("file loaded");
    });
    request(remote).pipe(picWrite).pipe(picFetch).pipe(res);
})
Run Code Online (Sandbox Code Playgroud)

要明确:我的目标是从CDN加载远程文件,将其本地缓存到服务器,然后在原始请求中返回该文件.在将来的请求中,我fs.exists()首先检查它是否存在.


到目前为止,这是我的最大努力:

http.createServer(function(req, res) {
    var file = fs.createWriteStream(local);
    request.get(remote).pipe(file).on('close', function() {
        res.end(fs.readFileSync(local), 'binary');
    });
})
Run Code Online (Sandbox Code Playgroud)

javascript request node.js

3
推荐指数
1
解决办法
9978
查看次数

仅使用JavaScript将数据保存到本地文件

有问题的设置:

我在Windows计算机上运行了一个独立的,离线的,自助服务模式的Chrome实例.我可以完全访问系统和任何管理员权限.我可以使用任何设置或未设置的标志启动Chrome.

任务:

我被要求创建一个日志文件,用于跟踪我正在编码的离线应用程序中的用户活动.这是一种简单的分析形式,它将每个事件附加到用逗号分隔的文件末尾.然后,该文件将通过计划任务每​​天发送一次到服务器.(这都不是我的想法,所以请不要拖我)

排除: 任何服务器端代码 - 我已经游说过Node,PHP等,但因为这将被分发到许多不同的安装,所以我们不能保证这将被安装.Flash/ActiveX/Java - 理想情况下要避免这种情况(即使这些将默认安装)

可能的解决方案:文件API - 我已经看了这个,但AFAIK如果打开对话框将数据保存到每个文件,这需要在后台进行.安全性 - 我已经在其他SO问题中读到,如果安全设置减少但是没有人继续解释哪些安全设置可以实现这一点.有一个简单的旗帜允许吗? 如何从Google Chrome启用本地文件系统读写访问权限? - 类似的问题!

理想的结果:(类似于PHP的东西)

$file = 'log.txt';
$current = file_get_contents($file);
$current .= ",clicked:link";
file_put_contents($file, $current);
Run Code Online (Sandbox Code Playgroud)

可能的理想副作用:证明这是不可能的并且强制使用PHP/Node/Java;)

回复建议本地存储的那些:我没有存储唯一的键/值对,这非常类似于设置cookie.类似地,存在文件大小限制.对那些建议使用Web SQL(如chrome中的SQLite)的人来说,如果它不是chrome扩展名,则会有文件大小限制.我看到工作的唯一方法是,如果我要在Windows目录中找到该文件的位置(C:\ Users \%USERNAME%\ AppData\Local\Google\Chrome\User Data\Default\databases)并上传该文件来自日程安排任务.完全可行,但这不是一个理想的答案.

javascript google-chrome

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