小编Zac*_*ura的帖子

从JavaScript对象中删除属性,由Mongoose的"findOneAndUpdate"方法返回

我正在Node.js上用JavaScript编写一个简单的服务器,其中(除其他外)允许用户管理他们的帐户(基本的CRUD功能等).服务器连接到MongoDB实例,使用Mongoose来管理连接和数据.

Mongoose中的模型有一个名为的方法findOneAndUpdate(),它完全按照您的想法执行:查询数据库中返回的第一个文档,并根据您传递的参数更新所述文档.然后,它将新的更新文档返回给用户.它完全按照预期工作,我没有问题.

但是,我不希望返回所有用户数据.具体来说,我想省略_idpassword字段.由于MongoDB返回的对象是一个基本的JavaScript对象,我假设我可以通过调用删除这些属性delete object.attribute.不幸的是,由于某种原因,这是行不通的.

这是我更新用户信息的代码:

case "update":
  User.findOneAndUpdate({"token": header.token}, body, function(err, user) {
    if (err) {
      return callback(err);
    } else {
      delete user["_id"];
      delete user["password"];
      return callback(null, new SuccessEnvelope(user));
    }
  });
  break;
Run Code Online (Sandbox Code Playgroud)

为清楚起见,Envelope(在这种情况下,a SuccessEnvelope)是客户端和服务器为了便于通信而需要的一组信息.类似于TCP数据包.无论如何,我离题了......

例如,如果我想将我的用户名从"joe_bob"更新为"jim_bob",我会将其发送到服务器:

{"header": "type": "user", "method": "update", "token": "IM_A_TOKEN_GAIS_SRSLY"}, "body": {"username": "jim_bob"}}

虽然用户的用户名已成功更新,但这是我得到的回报:

{"header": {"type": "success"}, "body": {"__v": 0, "_id":"SOME_NUMERICAL_ID", "email": "joe_bob@email.com", "password": "SUPER_SECURE_PASSWORD_HASH_COME_AT_ME_NSA", "token": "IM_A_TOKEN_GAIS_SRSLY", "username": "jim_bob"}}

正如你所看到的,_id并且password仍然存在.我究竟做错了什么?任何帮助将不胜感激.

谢谢!

javascript mongoose node.js

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

初始化许多对象的引用变量?

我在为Java类构建战舰游戏的网格时遇到了一些麻烦.到目前为止,我可以轻松地创建一个for循环来将JPanel或JButton对象添加到JFrame.但是,我的问题是,在玩游戏时我需要再次使用这些面板或按钮(例如点击一个按钮,看看你的对手是否在该广场上放了一艘船等等).Java中是否有一种简单的方法来初始化大量对象的引用变量?或者我必须单独申报所有这些内容吗?

java swing

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

使用Java中的UDP在网络上发送对象

我还没有找到我所遇到的问题的确切答案,所以无论如何我都会问这个问题,如果我这样做了,事实上,重新提出一个已被问过的问题,我道歉.

我正在为我的Java类做另一个实验任务,对于本周的实验,我必须让UDP服务器通过网络发送一个Message对象,然后我必须让UDP客户端读取该消息.Message本身只是一个具有String消息和String用户名的Object; 相当随意.消息是可序列化的.

现在,我遇到的问题是如何实际在DatagramPacket中通过网络发送消息对象?实际的构造函数让我输入一个字节数组,数组的大小,InetAddress和端口号.我的最后一个问题是:如何找出数组的大小,以及如何将我的Message转换为要发送的字节?

java networking udp

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

是否可以在Rust中的函数中定义可选参数?

Rust是否允许可选的函数参数,然后我可以将其设置为某个默认值,例如通过模式匹配或其他一些机制?

rust

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

在公民投票中使用C位运算符 - 家庭作业

我正在做一个C家庭作业项目而且我非常迷失.本质上,我必须使函数称为多数,它接受3个短整数,并根据输入吐出另一个数字.我将从项目中给出一个例子:

基本上,我创建函数majority(101010101010101, 101010101010101, 101010101010101),如果该位有2个或更多1,则返回1,否则返回0.

到目前为止,我有

short majority(short a, short b, short c)
{
    return (a | b | c);
}
Run Code Online (Sandbox Code Playgroud)

现在,我知道这是不对的,在所有的,所以我在这里问:我怎么会去这样做呢?感谢您的帮助,如果有点难以理解,我深表歉意.我可以根据需要进行编辑.

c bitwise-operators

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

Perl split()函数不处理保存为变量的管道字符

我在使用Perl的内置分割功能时遇到了一些麻烦.我正在创建一个脚本,用于编辑CSV文件的第一行,该文件使用管道进行列分隔.以下是第一行:

KEY|H1|H2|H3
Run Code Online (Sandbox Code Playgroud)

但是,当我运行脚本时,这是我收到的输出:

Col1|Col2|Col3|Col4|Col5|Col6|Col7|Col8|Col9|Col10|Col11|Col12|Col13|
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,Perl不喜欢我使用变量实际进行拆分的事实,在这种情况下,变量是一个管道.当我用实际管道替换变量时,它按预期完美地工作.当使用管道定界时,即使传入变量,我怎么能正确分割线?另外,作为一个愚蠢的警告,我没有权限从CPAN安装外部模块,所以我必须坚持内置的功能和模块.

对于上下文,这是我的脚本的必要部分:

our $opt_h;
our $opt_f;
our $opt_d;

# Get user input - filename and delimiter
getopts("f:d:h");

if (defined($opt_h)) {
    &print_help;
    exit 0;
}

if (!defined($opt_f)) {
   $opt_f = &promptUser("Enter the Source file, for example /qa/data/testdata/prod.csv");
}

if (!defined($opt_d)) {
    $opt_d = "\|";
}

my $delimiter = "\|";
my $temp_file = $opt_f;
my @temp_file = split(/\./, $temp_file);
$temp_file = $temp_file[0]."_add-headers.".$temp_file[1];

open(source_file, "<", $opt_f) or die "Err opening $opt_f: $!";
open(temp_file, ">", $temp_file) or die "Error opening …
Run Code Online (Sandbox Code Playgroud)

csv perl

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

如何用Flot显示空白图

正如标题所述,我正在寻找一个空白的"模板"图表(我的意思是,网页将显示一个没有任何行的图表),这是我正在为工作而建立的财务计算器.网页的基本设置顶部会有一个空白图表,下面有一个HTML表单来接受数据输入.用户输入数据并单击提交后,图表应填充该数据.

由此产生了两个问题.首先,它甚至可能吗?其次,如果有可能,我会将什么传递给$ .plot()函数?以下是我目前正在使用的内容:

<div id="main-content">
    <div id="chart" style="width:600px;height:300px;"></div>
    <script type="text/javascript">
        $(document).ready(function() {
            $.plot($("#chart"), [[null]]);
        });
    </script>
</div>
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激!谢谢!

编辑:我忘了提这个.当我去查看此网页时,Firebug给出了以下错误消息:

未捕获的异常:绘图的尺寸无效,宽度= 928,高度= 0

编辑答案:似乎错误消息来自我使用div的width和height属性,而不是使用宽度和高度设置样式.修好后,它有效!此处显示的所有代码现在都能正常工

html javascript graph flot

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

Angular 4-如何模拟模拟数据以进行原型开发

我正在将AngularJS v1.5项目升级到Angular4.x。在原始AngularJS应用程序的开发过程中,我们将使用该ngMocks包来模拟实际的Web服务API响应,并在页面上相应地显示数据。这在开发过程中非常有用,因为我以后不必对值进行硬编码以将其删除。最棒的是,我们将Webpack配置为仅在开发期间包含模拟数据,而在构建用于生产的应用程序时忽略这些模拟数据文件。模拟数据的配置如下:

/* app-login.mock.js */
import angular from 'angular';
import 'angular-mocks';

angular.module('app').run(function ($httpBackend) {
    $httpBackend
        .whenPOST('./api/auth')
        .respond(function(method, url, data) {
            var credentials = angular.fromJson(data);
            if (credentials.username == 'gooduser') {
                return [200, {'token': createToken(credentials.username)}];
            } else {
                return [401, {'errorMsg': 'Mock login only allows username "gooduser"'}];
            }
        });
});

function createToken(username) {
    // Create a token, which is valid enough for testing purposes.
    // This token is based on the actual token generated by the web service.
    let currentTime …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing angular

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

是否有Perl模块可以使用用户可配置的分隔符轻松读取/写入CSV文件?

我目前正在优化和维护用于分析两个CSV文件以获取不同数据的Perl脚本.完成数据分析后,各种结果将写入CSV文件.但是,根据某些命令行标志,要写入的数据将用逗号(,)或管道(|)分隔.因此,代码有点复杂(主要是因为我的业务部门的成员无法正确编码以挽救他们的生命,但我离题了......).我想知道是否在某处找到了一个允许您从/向CSV文件读/写文件的Perl模块,其中可以配置分隔符.我知道Python有一个内置的CSV模块,可以提供这样的功能和灵活性.当我通过CPAN搜索时,我找到了Text :: CSV模块,但这似乎不允许我配置分隔符.

有什么想法吗?

csv perl

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

如何加密网站的用户登录密码

我正在为一家公司开发一个网站,他们需要登录验证才能使用该公司提供的一些服务.使用常识,我知道在将用户密码保存到数据库时需要对其进行加密.不是问题,我可以简单地实现一个散列算法并存储散列(或者其他东西,我仍然需要troll StackOverflow来找出保存这些信息的最佳方法,但这不是我要求的).

我很好奇的是如何实际执行加密算法.这是服务器上的一个独立程序,它将加密密码然后存储它吗?或者我是否必须使用PHP模块来加密密码?或者是我没想到的其他东西?

任何和所有的答案都表示赞赏,如果我措辞不好,我指望你打电话给我;)

php database encryption passwords

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

从C中的命令行捕获可变长度字符串

我到处寻找我的问题的答案,但我还没有找到一个可靠的答案来解决我的问题.

我目前正在用C编写程序,专门针对UNIX命令行(我使用Linux作为我的开发环境,但我希望这个程序尽可能便携).现在,我有一个提示用户输入的基本shell.然后,用户将输入命令,并相应地处理该命令.这是我到目前为止的代码:

/* Main.c */
int main(int argc, char **argv)
{
    while (TRUE)
    {
        display_prompt();
        get_command();
    }

    return 0;
}

/* Main.h */
void get_command()
{
    /*
     * Reads in a command from the user, outputting the correct response
     */

    int buffer_size = 20;   
    char *command = (char*) malloc(sizeof(char) * buffer_size);

    if (command == NULL)
    {
       return_error("Error allocating memory");
    }

    fgets(command, buffer_size, stdin);
    if (command[strlen(command) - 1] == '\n')
    {
        puts("It's inside the buffer.");
    }
    else
    {
        puts("It's not inside …
Run Code Online (Sandbox Code Playgroud)

c stdin

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

编写适当的jQuery插件的麻烦

我正在重写一个jQuery插件,用于我在实习过程中构建的RSS阅读器.此插件使用Google的Feed API提取JSON格式的RSS Feed并将其返回给开发人员,从而允许他们微调控制该Feed在网页上的显示方式.我一直在关注官方jQuery插件创作页面作为参考.

在参考页面上,代码示例说你需要将你的插件添加到jQuery的原型:$.fn.这就是我所做的:

(function($) {
    "use strict";

    $.fn.rssObj = function(newUrl) {
        var RSSFeed = function(newUrl) {
            /*
             * An object to encapsulate a Google Feed API request.
             */

            this.feedUrl = newUrl;
        };

        RSSFeed.prototype.load = function() {
            var feed = new google.feeds.Feed(this.feedUrl);
            feed.load(function(result) {
                console.log(result);
            });
        };

        return new RSSFeed(newUrl);
    };

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

当我尝试通过执行使用此插件时$.rssObj("http://rss.test.com"),我的浏览器给了我这个错误:

$.rssObj() is not a function
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript jquery

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