小编Mar*_*yer的帖子

如何模拟nodejs中的请求和响应来测试中间件/控制器?

我的应用程序有几个层次:中间件,控制器,管理器.控制器接口与中间件一样:( req,res,next).

所以我的问题是:如何在不启动服务器的情况下测试我的控制器并向localhost发送"真实"请求.我想要做的是创建请求,响应实例作为nodejs,然后只调用控制器方法.

像这样的东西:

var req = new Request()
var res = new Response()
var next = function(err) {console.log('lala')}
controller.get_user(req, res, next)
Run Code Online (Sandbox Code Playgroud)

任何建议都非常感谢.谢谢!

PS我之所以这样做的原因是最后我想测试响应对象是否包含玉视图的正确变量.

testing integration-testing mocha.js node.js express

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

如何从JS中的数组中删除空对象

我有一个对象数组,当我进行字符串化时,它看起来像这样:

"[[{"entrReqInv": "Neither"},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]]"
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除空{}s?

javascript arrays jquery

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

当构造函数具有参数时,Angular 2中的依赖注入

我有一个表示模型的typescript类,我希望实例通过angular的Http服务与API通信.

但是模型的构造函数在创建实例时需要参数.例如一些超级简单:

class SomeModel{
    constructor(public id:number, public name:string, ){
    }
Run Code Online (Sandbox Code Playgroud)

我想注入Http服务,以便它可用于我的实例,但似乎这样做的规范方法是使用以下命令构造器:

constructor(http:Http)
Run Code Online (Sandbox Code Playgroud)

我一直在挖掘Injector文档,但它有点稀疏,我没有发现任何有用的东西.有没有办法在Http不使用构造函数模式的情况下从DI系统获取对服务的引用?

javascript dependency-injection angular

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

你能通过bootstrap将服务注入服务吗?

我正在尝试连接使用Http服务的基本Angular2应用程序.(我见过的大多数教程通过Component使用Http服务来实现这一点,除非瘦控制器的基本原理已经改变,否则这似乎是错误的 - 但这是一个不同的问题.)

我想创建一个使用Angular Http服务的服务.但我无法弄清楚如何注入除此之外的Http服务:

boot.ts:

import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
import {HTTP_PROVIDERS } from 'angular2/http';

bootstrap(AppComponent, [HTTP_PROVIDERS]);
Run Code Online (Sandbox Code Playgroud)

myService.ts:

import {Injectable} from 'angular2/core';
import {Http} from 'angular2/http';

@Injectable()
export class aService{
    constructor(http:Http){
    }
    /** do some stuff *//
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,但要求服务的用户知道服务的依赖性并且需要将它们注入引导过程似乎是非常错误的.似乎应该有一种方法直接将providers数组传递给服务,就像组件一样,但我找不到它.我只是错过了一些东西吗?

dependency-injection angular

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

Python 3.7本地开发服务器新应用程序引擎应用程序的选项

我有一个app-engine应用程序,它在标准的Python3运行时上部署并运行.我也可以使用常规命令在本地运行它flask run.但我无法按照我在2.7运行时运行应用程序的方式运行它dev_appserver.py.我使用的是最新gcloud版本,但运行dev_appserver.py结果如下:

错误:Python 3及更高版本与Google Cloud SDK不兼容.请使用Python版本2.7.x.

我认为我们不应该这样做,直到它看到:https: //cloud.google.com/appengine/docs/standard/python3/tools/local-devserver-command

首先是:

Python 3.7本地开发服务器选项

用法:
dev_appserver.py [options] yaml_path [files ...]

是否dev_appserver.py与Python3兼容(也许我在路径中有一个旧版本)?如果没有,是否有一种在本地运行应用程序的新方法,它将遵循app.yaml(如正确处理静态路径)并提供其他细节,如提供的本地数据存储dev_appserver.py

google-app-engine python-3.x

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

从Angular2中的指令改变组件属性

我有一个Angular 1应用程序,它使用一个简单的contentEditable指令,可以像这样在模板中使用:

<span contenteditable="true"  ng-model="model.property" placeholder="Something">
Run Code Online (Sandbox Code Playgroud)

编辑元素将触发$setViewValue(element.html()并按预期工作.

我想在Angular2中使用类似的简洁模板语法制作一些东西.理想情况下,我希望模板看起来像这样:

<span contentEditable="true" [(myProperty)]="name"></span>
Run Code Online (Sandbox Code Playgroud)

其中'name'是组件上的属性,并且指令在更改时更新组件.我觉得我很接近这个(Plunker Link):

//our root app component
import {Component, Input, Output Directive, ElementRef, Renderer, OnInit} from 'angular2/core'

@Directive({
    selector: '[contentEditable]',
    host: {
        '(blur)': 'update($event)'
    }
})

export class contentEditableDirective implements OnInit {
    @Input() myProperty;
    constructor(private el: ElementRef, private renderer: Renderer){}

    update(event){
      this.myProperty = this.el.nativeElement.innerText;
    }
    ngOnInit(){
        this.el.nativeElement.innerText =  this.myProperty; 
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我传递一个像这样的对象,这个想法是有效的,{name: "someName"}但是如果只是传递一个属性,它似乎传递了值,而不是引用,因此绑定不会流回到组件.有没有办法做到这一点,仍然允许模板语法不冗长,但仍然允许轻松重用指令.

angular

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

Google 图片 API 网址参数

我正在使用此处记录的图像 API:https : //cloud.google.com/appengine/docs/python/images/

根据文件:

然后,您可以向此 URL 添加参数以获得所需的大小和裁剪参数。可用的参数是:

=sxx 其中 xx 是 0-1600 之间的整数,表示图像最长边的长度(以像素为单位)。例如,添加 =s32 调整图像大小,使其最长尺寸为 32 像素。=sxx-c 其中 xx 是 0-1600 之间的整数,表示以像素为单位的裁剪图像大小,-c 告诉系统裁剪图像。

似乎有很多额外的参数可用。例如,使用-fv或翻转图像-fh,添加 20 像素的边框-b20以及更多。我在任何地方都找不到提到的这些。这只是一个尚未发布的 API,还是我一直找不到的很好的参考?

google-app-engine image

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

Adjusting Dijkstra for transit routing — minimize route changes

I am working on a small project that involves finding the best route on a bus system. I build a graph where the stops are vertices and the edges are weighted with the time between stops.

I though I would try to use a variant of Dijkstra to find the best route. When finding the next edges to consider, the algorithm only looks at edges whose departure time as after the current time along the trip. There are several parts …

algorithm dijkstra

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

使用 estimator api 避免 tf.data.Dataset.from_tensor_slices

我正在尝试找出将datasetapi 与 api 一起使用的推荐方法estimator。我在网上看到的一切都是这个的一些变体:

def train_input_fn():
   dataset = tf.data.Dataset.from_tensor_slices((features, labels))
   return dataset
Run Code Online (Sandbox Code Playgroud)

然后可以将其传递给估算器的 train 函数:

 classifier.train(
    input_fn=train_input_fn,
    #...
 )
Run Code Online (Sandbox Code Playgroud)

数据集指南警告说:

上面的代码片段会将特征和标签数组作为 tf.constant() 操作嵌入到您的 TensorFlow 图中。这适用于小数据集,但会浪费内存——因为数组的内容将被多次复制——并且可能会遇到 tf.GraphDef 协议缓冲区的 2GB 限制。

然后描述一种方法,该方法涉及定义占位符,然后用 填充feed_dict

features_placeholder = tf.placeholder(features.dtype, features.shape)
labels_placeholder = tf.placeholder(labels.dtype, labels.shape)

dataset = tf.data.Dataset.from_tensor_slices((features_placeholder, labels_placeholder))

sess.run(iterator.initializer, feed_dict={features_placeholder: features,
                                          labels_placeholder: labels})
Run Code Online (Sandbox Code Playgroud)

但是,如果您使用的是estimatorapi,则不会手动运行会话。那么如何将datasetapi 与 estimators 一起使用,同时避免与 相关的问题from_tensor_slices()

python tensorflow

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

如何将元素传递到JavaScript中的回调方法?

我目前正在学习JavaScript,我对这个Array.find()方法的回调函数如何工作有点困惑,

我有这个当前的代码:

const numbers= [43,46,33,23,44,36,5]

function under50(num) {
    return num < 50;
}

val = numbers.find(under50);
Run Code Online (Sandbox Code Playgroud)

根据Mozilla文档:

callback函数对数组中的每个值执行,取三个参数:

元件

当前元素在数组中处理.

指数

数组中正在处理的当前元素的索引.

排列

数组查找被调用.

现在要理解我传递元素的方法,然后迭代,然后一旦找到它的元素将返回值.然而,令我困惑的是,当我从未明确地传递过Array的方法时,它是如何知道元素的?如果有人可以发布一个简单的例子,那将非常有帮助

javascript arrays methods callback

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