我找到了以下脚本:
Device.find(function(err, devices) {
devices.forEach(function(device) {
device.cid = '';
device.save();
});
});
Run Code Online (Sandbox Code Playgroud)
MongoDB有多个文件更新的"多"标志,但我无法使用mongoose.这还不支持还是我做错了什么?!
Device.update({}, {cid: ''}, false, true, function (err) {
//...
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用mocha来测试我的快递应用.我的文件夹结构是:
myapp
|-app
|--models
|-test
|--mocha-blanket.js
|--mocha
|--karma
|-server.js
Run Code Online (Sandbox Code Playgroud)
server.js
是我的快递服务器.之前我曾经有过options.require
,但是文档说要使用blanket.js
.我mocha-blanket.js
是:
var path = require('path');
var srcDir = path.join(__dirname, '..', 'app');
require('blanket')({
// Only files that match the pattern will be instrumented
pattern: srcDir
});
Run Code Online (Sandbox Code Playgroud)
我的Gruntfile有:
mochaTest:
options:
reporter: "spec"
require: 'test/mocha-blanket.js'
# require: "server.js"
coverage:
options:
reporter: 'html-cov',
captureFile: 'mocha-coverage.html'
src: ["test/mocha/**/*.js"]
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
>> Mocha exploded!
>> MissingSchemaError: Schema hasn't been registered for model "Company".
>> Use mongoose.model(name, schema)
>> at …
Run Code Online (Sandbox Code Playgroud) 我需要一种方法来始终为时间戳添加一分钟,即使由于计划的闰秒,分钟长度为61秒.有谁知道如果不moment().add(1, 'minute')
加闰秒增加一分钟?或者它总是添加六十秒?
我已经发现它如何处理夏令时和闰年的增加,但对闰秒没有任何影响.
提供一些背景知识,说明这一点很重要:
我需要创建一个CSV文件,其中包含一系列用于各种传感器的每分钟传感器数据,格式如下:
time,sensor1,sensor2
1491329921800,20,21
1491329981800,22,21
Run Code Online (Sandbox Code Playgroud)
我的数据与一小时开始的时间戳一起存储,然后是一小时的60个数据点的数组.
{
timestamp: Date(2017,2,24,12,0,0),
temperature: [20, 22, 23, ... <60 elements total>]
}
Run Code Online (Sandbox Code Playgroud)
我把它变成了一堆时间戳的数据,给第一个数据点一小时的时间戳,并为每个后续数据点增加60秒(因为闰秒总是发生在一小时结束时我只做过一次一次一个小时,这应该没问题).
然后,我需要构建一个字典,将每个时间戳映射到该分钟的值.这是必要的,这样我就可以在CSV的右行中获得正确的数据; 传感器可能已经在不同的时间启动,或者可能已经关闭了一小时或者在一小时的某个时间段没有报告; 我不能只假设所有传感器都有相同的数据.
我找到了使用以下代码创建CSV的所有时间戳:
var date = moment(startDate);
var end = endDate.getTime();
var timestamps = [];
while(date.valueOf() < end) {
timestamps.push(date.valueOf());
date.add(1, 'minute')
}
timestamps.push(date.valueOf());
Run Code Online (Sandbox Code Playgroud)
但我不确定它是否安全.如果我需要,我可以date.add(1, 'minute')
改为date.add(1, 'minute').startOf('minute')
,但这可能会增加很多执行时间,如果可能的话我想避免它.
我在SO上看了几个答案,并阅读了官方文档.从我所看到的,这应该是有效的.
在我的服务中,我有:
var RESTServices = angular.module('RESTServices', []);
RESTServices.service('restCall', ['$resource', function($resource){
return {
servList: function(args, scope){
// Lists servers from the API method
$resource('http://localhost:1000/apiv1/servers')
.get(args).$promise.then(function (result) {
scope.servers = result.server_list;
}, function(error){
errorHandler(scope, error)
})
}, ... etc.,
};
}]);
Run Code Online (Sandbox Code Playgroud)
我正在尝试运行测试:
describe('Services that require API calls', function() {
var restCall,
$httpBackend;
beforeEach(function () {
module('RESTServices');
inject(function (_$httpBackend_, _restCall_) {
restCall = _restCall_;
$httpBackend = _$httpBackend_;
});
});
it('Should supply a list of servers', function () {
//var serverList = ['Thufir Hawat', …
Run Code Online (Sandbox Code Playgroud)