小编nau*_*boy的帖子

如何在Visual Studio代码调试器中使用Jest时配置源映射

我正在使用react native编写应用程序,我希望能够使用jest框架测试我的代码并使用visual studio代码编辑器调试器来设置断点.我目前遇到的问题是无论我如何运行调试器,无论是通过生成新实例还是附加它,我似乎无法从babel中获取源映射.我在.babelrc文件中尝试过各种配置,但似乎都没有.

VScode版本 - 1.6.0(最新)

我的目录结构类似于此

-package.json
-node_modules
-.babelrc
-dist
-app
 -myModule.js
 -test
   -myModule.spec.js
Run Code Online (Sandbox Code Playgroud)

然后在我的.babelrc中我有以下内容

{
    "presets" : ["react-native"],
    "sourceMaps" : true,
    "outDir" : "./dist"
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试设置sourceMaps道具都trueinline两者没有与当前的工作launch.json配置.

这是我launch.json运行Jest测试器的

{

            "name" : "Launch via jest",
            "type": "node",
            "request": "launch",
            "program" : "${workspaceRoot}/node_modules/jest/bin/jest.js",
            "cwd": "${workspaceRoot}",
            "args": [
                "--runInBand"
            ],
            "runtimeArgs": [
                "--harmony"
            ],
            "sourceMaps": true,
            "outDir" : "${workspaceRoot}/dist"
}
Run Code Online (Sandbox Code Playgroud)

两者--harmony--runInBand有必要得到调试器,因为玩笑正常工作将产生一个子进程与端口冲突.

我的package.json中还有其他Jest配置

"jest": {
    "preset": "jest-react-native"
  }
Run Code Online (Sandbox Code Playgroud)

现在,无论何时我运行调试器,它都会运行,它会在babel输出的断点处停止,而不是原始源,这对于帮助不大.我还应该提一下,测试本身是由babel编译的,我不确定它是否重要. …

debugging jestjs babeljs react-native visual-studio-code

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

如何在图像中浮动文本以反应原生

我试图在文本环绕图像的本地反应中实现非常常见的效果.在网络上,您可以float为图像指定属性并使用p标记进行跟踪. 这就是我希望我的元素流动的方式.

这是我一直在研究的RNPlay示例.我认为我目前的方法有点hackish,并且没有正常工作,因为文本没有与图像的顶部对齐并且向下流动.有没有一个适当和干净的方法来实现这一目标?

css flexbox react-native

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

如何从数组内的文档中投影特定字段?

这是一个典型的文件

{
   title : 'someTitle',
   places : [{name : 'someName', location : 'someLocation'}, {name ...}]
}
Run Code Online (Sandbox Code Playgroud)

我有以下查询

var qs = {title : 'someTitle', places : {$elemMatch : {name : 'someName' } } };
Run Code Online (Sandbox Code Playgroud)

我选择一个与标题匹配的文档,其中包含名称等于'someName'的'places'数组中的文档条目.但问题是places数组中的条目是大文档,我只需要该文档中的几个字段.我尝试像这样投射字段,但它没有用.

var projection = {'places.$.name': 1, 'places.$.location' : 1};
Run Code Online (Sandbox Code Playgroud)

应该返回一个包含仅包含'name''location'属性的文档的数组.

我收到以下错误

Can't canonicalize query: BadValue Cannot specify more than one positional proj. per query.  
Run Code Online (Sandbox Code Playgroud)

要清楚,我想在没有聚合框架的情况下实现这一目标

mongoose mongodb mongodb-query aggregation-framework

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

如何制作css'蜗牛'?

我有一个想要显示为带有(border-radius:50%)的圆圈的图像,并且在同一行上我希望有一些具有设置宽度和背景的文本.我不想硬编码任何值.实现这一目标的最佳方法是什么?

这是一张照片css蜗牛

小提琴

<div class="header">
    <img class="i" src="http://www.planwallpaper.com/static/images/colorful-triangles-background_yB0qTG6.jpg"/>
    <p class="headingText">Hello</p>
</div>
Run Code Online (Sandbox Code Playgroud)
.i {
    width: 80px;
    height: 80px;
    border-radius: 50%;
}

.headingText {
    color: white;
    background: black;
    display: inline-block;
    width: 350px;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
}
Run Code Online (Sandbox Code Playgroud)

html css css3 css-shapes

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

浏览器网络摄像头流具有极低的性能/帧速率

我正在尝试测试WebRTC并希望显示我自己的流以及对等的流.我目前有一个简单的垫片来获取摄像机的流和管道到视频元素,但帧速率非常低.关于这一点的罕见之处在于,我可以尝试WebRTC网站上的示例,并且它们可以完美地工作..视频流畅且没有任何问题.我去控制台,我的代码类似于他们的......可能会发生什么?我试图创建一个小提琴,并在括号内运行该代码,但它仍然执行可怕.

video = document.getElementById('usr-cam');

  navigator.mediaDevices.getUserMedia({video : {
      width : {exact : 320},
      height : {exact: 240}
  }})
  .then(function(stream){


      if(navigator.mozGetUserMedia)
      {
        video.mozSrcObject = stream;
      }
      else
      { 
         video.srcObject = stream;
      }



  })
  .catch(function(e){
      alert(e);
  });
Run Code Online (Sandbox Code Playgroud)

几乎我所做的一切.考虑到我正在使用新的navigator.mediaDevices()API,navigator.getUserMedia()但我不知道这是多么重要,因为1.我正在使用由adapter.js他们自己使用的WebRTC组提供的垫片.2.我不认为你如何获得视频流会影响性能.

webrtc getusermedia webcam-capture

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

如何使用 JavaScript 减少视频的长度?

我正在尝试从头或尾修剪浏览器中视频的长度。我目前拥有的是使用 MediaRecorder API 录制的 MediaStream,我用它在录制结束时生成一个 Blob,类型设置为“video/mp4”。这很好用,我可以播放视频,但是我想要一种在开始或结束时修剪视频的方法。

在进一步研究 MediaStream API 后,我遇到了SourceBuffer对象,您可以从 MediaStreamTrack 获取该对象并使用它来删除时间片,这正是我想要的。但是我不确定如何从视频(blob)中获取 MediaStreamTrack,因为 video.srcObject 属性返回 null。

html javascript browser dom html5-video

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

如何将第三方二进制文件与Electron捆绑在一起?

总体而言,我仍然对电子生态系统和桌面开发还不陌生,但是我想做的是与软件捆绑在一起的第三方开源应用程序进行交互。首先,我不确定要分发的软件包选项应该是什么。习惯上有两次下载,一次是针对已经安装了第三方二进制文件的用户,另一次是包含该二进制文件的用户?另外,我该如何实际打包和安装二进制文件?这应该是我package.json上的一个选项吗?我应该执行哪种脚本?是否有任何npm模块可简化此操作?

编辑 -是否可以从我的main.js中调用npm,即使用户先前未安装节点也是如此?我知道节点与电子封装捆绑在一起,但是npm也是吗?

-在这种情况下,二进制文件是PostgreSQL

installation desktop-application package node.js electron

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

使用快速会话的套接字IO - socket.request.res undefined

我目前正在尝试使用express 4.x和socket io 1.4实现会话管理,引用此答案.问题是快速会话函数的第二个参数是res(响应)对象,它在我的路由中返回'undefined'.这个问题已经过时了还是我做错了什么?

var http = require('http');

var session = require('express-session')(
{
  saveUninitialized : false,
  resave:false,
  secret:'secretstuff',
  cookie : {
    path : '/'
  }
}
);

var express = require('express');

var app = express();

app.use(session)

var http_server = http.createServer(app);

var io = require('./sockets')(http_server,session);
Run Code Online (Sandbox Code Playgroud)

这是我的sockets.js

var Server = require('socket.io');

module.exports = function(http_server, session)
{
   var io = new Server(http_server);

   io.use(function(socket,next){

      //socket.request.res === undefined
      session(socket.request, socket.request.res,next);
   })

}
Run Code Online (Sandbox Code Playgroud)

这是我得到的地方

未捕获的TypeError:参数res是必需的

node.js express socket.io express-session

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

在执行所有当前调度的回调后调用函数(节点)

我正在使用流式multipart/form-data解析器来处理文件和字段上传.每当解析一个新的字段或文件时,就会触发一个事件并执行一些处理.解析'close'完所有字段和文件后,会触发一个事件,然后我会为请求调用终止函数.这是设置.

parser.on('fields',function(){

    handleField(callback);

});


parser.on('close',function(){
    dismiss();
})
Run Code Online (Sandbox Code Playgroud)

问题是处理字段可能需要一些时间,这使得'close'侦听器在我有机会从字段处理侦听器调用回调之前解除请求.

我试图使用setImmediate根据其描述的功能

在I/O和计时器回调之后,在事件队列中对其回调进行排队.

为了在dismiss()执行所有当前计划的回调后调用我的函数,但是这不起作用,我甚至尝试过process.nextTick()以防止订单被撤销,但没有这样的运气.

所以问题是,dismiss()只有在调用了处理函数的所有当前调度回调之后,我才能调用我的函数?

javascript events callback node.js

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

MongoDB:带有数组的文本索引,仅第一项被索引

我有一个具有以下架构的文档

{
  description : String,
  tags : [String]
}
Run Code Online (Sandbox Code Playgroud)

我已将这两个字段都索引为文本,但问题是,每当我在数组中搜索特定字符串时,仅当该字符串是数组的第一个元素时,它才会返回文档。因此,似乎 $text 索引仅适用于第一个元素,这是 mongo 固有的工作方式还是有一个选项必须传递给索引?

示例文档

{
   description : 'random description',
   tags : ["hello", "there"]
}
Run Code Online (Sandbox Code Playgroud)

创建索引的对象

{description : 'text', tags : 'text'}
Run Code Online (Sandbox Code Playgroud)

查询

db.myCollection.find({$text : {$search : 'hello'}});
Run Code Online (Sandbox Code Playgroud)

返回一个文档但是

db.myCollection.find({$text : {$search : 'there'}});
Run Code Online (Sandbox Code Playgroud)

不返回任何内容。

使用版本2.6.11

我还有其他索引,但这些是唯一的文本索引。这是相应的输出db.myCollection.getIndexes()

{
                "v" : 1,
                "key" : {
                        "_fts" : "text",
                        "_ftsx" : 1
                },
                "name" : "description_text_tags_text",
                "ns" : "myDB.myCollection",
                "weights" : {
                        "description" : 1,
                        "tags" : 1
                },
                "default_language" …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query mongodb-indexes

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

使第二行的弹性物品占据容器的剩余高度

我正在尝试创建一个顶部带有标题的布局,下面是侧边栏和主要内容.

我想让侧边栏和内容视图接管标题留下的垂直空间.问题是标题可以动态重新调整大小,所以我无法执行calc().我的解决方案是使用flexbox方案.

我将视口水平分为两部分.一个是标题,一个是侧边栏和主要内容的包装.

侧边栏向左浮动并给出宽度的一定百分比,内容向右浮动并给出其余部分.

问题是我试图让侧边栏始终是包装器的100%高度.

我尝试过height: 100%,min-height: 100%但这些都行不通.

我不希望绝对定位它,因为如果包装器溢出主要内容,侧边栏将不会相应地扩展.

这是我的笔:http://codepen.io/markt5000/pen/JXNXpW

如您所见,橙色是标题,红色空间是侧边栏和内容的包装.

这是布局

<div class="header">
</div>

<div class="row">

  <div id="sidebar">
  </div>

 <div id="main-content">
 </div>

</div>
Run Code Online (Sandbox Code Playgroud)

html css css3 flexbox

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

如何在redis上命名空间键以避免名称冲突?

我想使用redis来存储我自己的一些键值对,但是我的一些模块已经使用它了.redis表示会话数据的会话存储,以及socket io的redis适配器.所以我的问题很简单,我如何创建或指定一个数据库/命名空间来存储我自己的密钥而不会发生密钥冲突?我正在使用node-redis驱动程序.

namespaces redis node.js node-redis

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