小编Err*_*ald的帖子

在node/express + ejs中将对象传递给客户端?

我有一个非常大的对象,我需要传递给客户端脚本中的函数.我尝试过使用JSON.stringify,但是这种方法遇到了一些问题 - 主要是与性能有关.是否有可能在ejs中做这样的事情?

app.get('/load', function(req, res) {
    var data = {
        layout:'interview/load',
        locals: {
            interview: '',
            data: someLargeObj
        }
    };
    res.render('load', data);
});
Run Code Online (Sandbox Code Playgroud)

在我的客户端脚本中,我会将此对象传递给类似的函数

<script type="text/javascript">
    load(<%- data %>); // load is a function in a client script
</script>
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到了

<script type="text/javascript">
    load();
</script>
Run Code Online (Sandbox Code Playgroud)

要么

<script type="text/javascript">
    load([Object object]);
</script>
Run Code Online (Sandbox Code Playgroud)

ejs node.js express

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

从列表中删除/隐藏大量元素的最快方法

我有一个包含大约100,000行的下拉列表组成一个列表.

<input id="search" type="text" />
<ul>
    <li>item 1</li>
    <li>item 2</li>
        ...
    <li>item 100,000</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我有一个文本框作为搜索,因此当您键入它时,它匹配列表中项目的输入,删除不匹配的内容.这是我写的用于执行列表元素删除的类.

看小提琴(列表有大约2000项)

// requires jQuery
var Search = (function(){

    var cls = function (name) {
        var self = this;

        self.elem = $('#' + name);
        self.list = $('#' + name).next('ul').children();
        self.elem.bind('keyup', function () { self.change(); }); 
    };

    cls.prototype = {
        change: function () {
            var self = this;
            // gets the closest ul list
            var typed = self.elem.val();

            // only do something if there is something typed …
Run Code Online (Sandbox Code Playgroud)

javascript

9
推荐指数
1
解决办法
286
查看次数

Python看门狗没有触发所有事件

我正在尝试观看一些文本文件,当它们被修改时使用,watchdog但我似乎只是获取.tmp文件的事件.我理解这是sublime文本保存文件的方式,但是我也不应该为实际文件触发事件?

这是我尝试/home/john/resources/css/style.css在sublime文本中的位置保存文件时得到的结果:

/home/john/resources/css/.sublaa.tmp
/home/john/resources/css/.sublaa.tmp
/home/john/resources/css/.sublaa.tmp
Run Code Online (Sandbox Code Playgroud)

我似乎只获取了tmp文件的事件,但不是实际文件.这实际上适用于MacOSX,但不适用于Ubuntu.

#!/usr/bin/python
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler


class MyHandler(FileSystemEventHandler):
    def on_any_event(self, event):
        print event.src_path

if __name__ == "__main__":
    event_handler = MyHandler()
    observer = Observer()
    observer.schedule(event_handler, path='.', recursive=False)
    observer.start()

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()
Run Code Online (Sandbox Code Playgroud)

python file-io watchdog

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

Javascript模块模式,嵌套函数和子模块

我试图围绕javascript模块,但我不确定如何将模块拆分为更多的子模块.我已经读过,由于性能的原因,嵌套函数并不是一个好主意,那么如何在模块中分解函数呢?例如,假设我有以下模块:

var Editor = {};

Editor.build = (function () {
    var x = 100;
    return {
        bigFunction: function () {
            // This is where I need to define a couple smaller functions 
            // should I create a new module for bigFunction? If so, should it be nested in Editor.build somehow?
        }
    };
})();
Run Code Online (Sandbox Code Playgroud)

bigFunction只与Editor.build有关.我应该将构成bigFunction的较小函数附加到原型bigFunction对象吗?我甚至不确定这是否有意义.

var Editor = {};

Editor.build = (function () {
    var x = 100;
    return {
        bigFunction: function () {
            bigFunction.smallFunction();
            bigFunction.prototype.smallFunction = function(){ /*do something */ …
Run Code Online (Sandbox Code Playgroud)

javascript module

5
推荐指数
1
解决办法
1774
查看次数

解析JavaScript条件语句的用户输入

如何从用户输入解析字符串并将其重建为javascript条件语句.

例如,如果用户将后续字符串输入到texbox中

x==1 && y==2 || (z!=3)
Run Code Online (Sandbox Code Playgroud)

如何重新创建此字符串以执行以下服务器端javascript

if (vars['x'] == 1 && vars['y'] == 2 || (vars['z'] != 3)) 
Run Code Online (Sandbox Code Playgroud)

我的应用程序建立在node.js上,如果该信息有帮助的话.我知道eval()函数,但我需要在评估之前首先从用户表达式中获取变量.

这对正则表达式来说似乎太复杂了.如果有人知道一个简单的解析器可以完成这样的事情会很棒.

javascript parsing

5
推荐指数
0
解决办法
1318
查看次数

导入时出现MySQL/Amazon RDS错误

我正在尝试将所有数据库从500Gb RDS实例转储到较小的实例(100Gb).我保存了很多用户权限,所以我需要转储mysql表.

mysqldump -h hostname -u username -ppassword --all-databases > dump.sql
Run Code Online (Sandbox Code Playgroud)

现在当我尝试将数据上传到我的新实例时,我收到以下错误:

mysql -h hostname -u username -ppassword < dump.sql`
ERROR 1044 (42000) at line 2245: Access denied for user 'staging'@'%' to database 'mysql'
Run Code Online (Sandbox Code Playgroud)

我只是使用数据库快照来完成此任务,但我的实例尺寸较小.

作为一个完整性检查,我尝试将数据转储到原始实例,但得到了相同的错误.有人可以告诉我应该在这做什么吗?谢谢!

mysql amazon-web-services amazon-rds

5
推荐指数
1
解决办法
1752
查看次数

猫鼬对象上的findOne

我有一个猫鼬架构如下

var user_schema = new Schema({
    reset : { type: Schema.Types.Mixed, required: true }
});
Run Code Online (Sandbox Code Playgroud)

给reset一个这样的对象以存储在数据库中

{
    id: 23,
    name: 'something'
}
Run Code Online (Sandbox Code Playgroud)

我想根据重置对象中的ID查找文档。这是我尝试过的方法,但从未得到任何结果。

models.Users.findOne({ 'reset.id': id }, function (err, user) {
    // user is null 
});
Run Code Online (Sandbox Code Playgroud)

猫鼬是否可以像这样进行查找?

javascript mongoose mongodb

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

绝对定位div的Z-index嵌套在固定位置div中

我有一个固定的位置div(标题),它有一个绝对位置的子div,我想在所有的顶部(就z-index而言),但我似乎无法弄清楚如何做到这一点.具有绝对位置的子div的高度大于标题但不会延伸.

小提琴在这里.

<!doctype html>
<html lang="en">
<body>
    <div class="container">
        <div class="header">
            <div class="center">
                <div id="pgSearch" class="search-box">
                    <div class="input-results">
                        <p>this should extend over the red part</p>
                    </div>
                </div>
            </div>
        </div>
        <div class="content">
            <div class="center">
                <p>content</p>

            </div>
        </div>
    </div><!--container-->
</body>
</html>

.container {
    width: 100%;
    height: 100%;
    padding-top: 89px;
    position: relative;
    z-index:10;
    background:red;
}

.header {
    position: fixed;
    height: 89px;
    display: block;
    padding: 0 20px;
    top: 0px;
    left: 0px;
    right: 0px;
    overflow-y: hidden;
    background: green;
    z-index: 500;
}
.search-box {
    width:300px; …
Run Code Online (Sandbox Code Playgroud)

html css

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

Elasticsearch最小主节点

我有一个3节点集群minimum_master_nodes设置为2.如果我关闭除主服务器之外的所有节点,使一个节点保持联机状态,则群集将不再运行.

这是设计的吗?似乎作为主节点的节点应该保持运行,而是我得到这样的错误:

{"error":"MasterNotDiscoveredException[waited for [30s]]","status":503}
Run Code Online (Sandbox Code Playgroud)

所有其他设置都是库存,我正在使用aws云插件.

elasticsearch

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

在php中减去数字密切相关

为什么

<?php echo 194.95-194.94; ?>

产量

0.0099999999999909
Run Code Online (Sandbox Code Playgroud)

我在这里失踪了什么?这是php 5.2.

php floating-point floating-accuracy floating-point-exceptions

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

Express +节点CSRF禁止使用

我见过类似的问题,但没有一个解决方案对我有用.我正在使用express 3,使用ejs进行模板化.令牌正在html中填充,如下所示:

<input type="hidden" name="_csrf" value="IS+SwCqr3j+vGW9QSqIk56ZC/">
Run Code Online (Sandbox Code Playgroud)

这是我的模板html对于输入字段的样子:

<input type="hidden" name="_csrf" value=<%= token %>/>
Run Code Online (Sandbox Code Playgroud)

但是当我提交表格时,我得到了

Error: Forbidden at Object.exports.error 
Run Code Online (Sandbox Code Playgroud)

这是我的主应用程序配置功能的样子

app.configure(function () {
    app.engine('.html', require('ejs').__express);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.cookieParser());
    app.use(express.static(__dirname + '/public'));
    app.use(express.session({
        store:  new mongoStore({
            url:'mongodb://localhost/test',
            maxAge: 300000
        }),
        secret: '076ee61d63ba104r4e34872411e433b2',
        cookie: {
            path     : '/',
            httpOnly : true,
            maxAge   : 1000*60*60*24*30*12
        }
    }));
    app.use(express.csrf());
    app.use(function(req, res, next){
        res.locals.token = req.session._csrf;
        next();
    });
    app.use(app.router);
});
Run Code Online (Sandbox Code Playgroud)

会话工作正常,令牌正在填充,所以我不知道现在要做什么.

csrf node.js express

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

有条件的Mongoose查询

我有一个查询,我想在where情况下运行,只有当变量为false时.这就是我现在正在做的事情,但它不是最佳的.有没有办法用一个查询来做到这一点?

if (user) {
    models.Interviews.find({}).exec(function (err, interviews) {
        // stuff
    });
} else {
    models.Interviews.find({}).where('group').equals(group_id).where('disabled').equals(false).exec(function (err, interviews) {
        // stuff
    });         
}
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

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

将子域重写为www对应的

我想将http://sub.domain.com重定向到http://www.sub.domain.com,但也将http://domain.com重定向到http://www.domain.com.

这就是我对域名部分的看法

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule .? http://www.domain.com%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这有多难?

.htaccess

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