我正在Node.js上用JavaScript编写一个简单的服务器,其中(除其他外)允许用户管理他们的帐户(基本的CRUD功能等).服务器连接到MongoDB实例,使用Mongoose来管理连接和数据.
Mongoose中的模型有一个名为的方法findOneAndUpdate(),它完全按照您的想法执行:查询数据库中返回的第一个文档,并根据您传递的参数更新所述文档.然后,它将新的更新文档返回给用户.它完全按照预期工作,我没有问题.
但是,我不希望返回所有用户数据.具体来说,我想省略_id和password字段.由于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仍然存在.我究竟做错了什么?任何帮助将不胜感激.
谢谢!
我在为Java类构建战舰游戏的网格时遇到了一些麻烦.到目前为止,我可以轻松地创建一个for循环来将JPanel或JButton对象添加到JFrame.但是,我的问题是,在玩游戏时我需要再次使用这些面板或按钮(例如点击一个按钮,看看你的对手是否在该广场上放了一艘船等等).Java中是否有一种简单的方法来初始化大量对象的引用变量?或者我必须单独申报所有这些内容吗?
我还没有找到我所遇到的问题的确切答案,所以无论如何我都会问这个问题,如果我这样做了,事实上,重新提出一个已被问过的问题,我道歉.
我正在为我的Java类做另一个实验任务,对于本周的实验,我必须让UDP服务器通过网络发送一个Message对象,然后我必须让UDP客户端读取该消息.Message本身只是一个具有String消息和String用户名的Object; 相当随意.消息是可序列化的.
现在,我遇到的问题是如何实际在DatagramPacket中通过网络发送消息对象?实际的构造函数让我输入一个字节数组,数组的大小,InetAddress和端口号.我的最后一个问题是:如何找出数组的大小,以及如何将我的Message转换为要发送的字节?
我正在做一个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)
现在,我知道这是不对的,在所有的,所以我在这里问:我怎么会去这样做呢?感谢您的帮助,如果有点难以理解,我深表歉意.我可以根据需要进行编辑.
我在使用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) 正如标题所述,我正在寻找一个空白的"模板"图表(我的意思是,网页将显示一个没有任何行的图表),这是我正在为工作而建立的财务计算器.网页的基本设置顶部会有一个空白图表,下面有一个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属性,而不是使用宽度和高度设置样式.修好后,它有效!此处显示的所有代码现在都能正常工
我正在将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) 我目前正在优化和维护用于分析两个CSV文件以获取不同数据的Perl脚本.完成数据分析后,各种结果将写入CSV文件.但是,根据某些命令行标志,要写入的数据将用逗号(,)或管道(|)分隔.因此,代码有点复杂(主要是因为我的业务部门的成员无法正确编码以挽救他们的生命,但我离题了......).我想知道是否在某处找到了一个允许您从/向CSV文件读/写文件的Perl模块,其中可以配置分隔符.我知道Python有一个内置的CSV模块,可以提供这样的功能和灵活性.当我通过CPAN搜索时,我找到了Text :: CSV模块,但这似乎不允许我配置分隔符.
有什么想法吗?
我正在为一家公司开发一个网站,他们需要登录验证才能使用该公司提供的一些服务.使用常识,我知道在将用户密码保存到数据库时需要对其进行加密.不是问题,我可以简单地实现一个散列算法并存储散列(或者其他东西,我仍然需要troll StackOverflow来找出保存这些信息的最佳方法,但这不是我要求的).
我很好奇的是如何实际执行加密算法.这是服务器上的一个独立程序,它将加密密码然后存储它吗?或者我是否必须使用PHP模块来加密密码?或者是我没想到的其他东西?
任何和所有的答案都表示赞赏,如果我措辞不好,我指望你打电话给我;)
我到处寻找我的问题的答案,但我还没有找到一个可靠的答案来解决我的问题.
我目前正在用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) 我正在重写一个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)
我究竟做错了什么?