小编JVG*_*JVG的帖子

NodeJS图像处理/分析是否可行?

我正在NodeJS服务器端运行,我正在尝试进行一些自动图像处理以确定图像的"基色".

以下是我想要做的步骤:

  1. 拍摄图像(在远程服务器上,通过URL传递)并获取其尺寸
  2. 使用尺寸计算图像的中心
  3. 围绕中心点采用10px x 50px(WxL)矩形
  4. 获取每个像素的RGB值(每个图像500个)
  5. 输出像素的平均值

我知道这些东西在PHP中是可能的,但我想使用Node是可能的.我已经看过有关使用Node-imagick基本处理(如调整大小和裁剪)的教程,但不知道从哪里开始更像这样的高级分析.

问题

(a)这可能与Node有关吗?

(b)哪些图书馆允许我这样做?

javascript image image-processing node.js

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

从范围中删除项目时使用AngularJS的ngAnimate

非常简单的问题:在从范围中删除项目时AngularJS 1.2.x,是否可能(以及如何)ngAnimate触发?

这是Plunker的一个例子:

http://plnkr.co/edit/tpl:FrTqqTNoY8BEfHs9bB0f?p=preview

码:

  <body ng-controller="MainCtrl">  
      <div ng-repeat="img in imgs" class="my-repeat-animation">
        <img ng-src="{{img}}" />
        <button class="btn btn-primary" ng-click="remove(img)">DELETE</button>
      </div>
  </body>
Run Code Online (Sandbox Code Playgroud)

脚本:

app.controller('MainCtrl', function($scope) {
     $scope.imgs = ['http://cache.mrporter.com/images/products/362812/362812_mrp_in_l.jpg', 'http://cache.mrporter.com/images/products/362807/362807_mrp_in_l.jpg', 'http://cache.mrporter.com/images/products/364762/364762_mrp_in_l.jpg', 'http://cache.mrporter.com/images/products/357020/357020_mrp_in_l.jpg']
     $scope.remove = function(image){
       var index = $scope.imgs.indexOf(image);
       $scope.imgs.splice(index,1);
     }
});
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,点击"删除"按钮运行splice()$scope.imgs.我想动画这个,而不是让它消失.我正在使用刚刚从Moo年份文章中复制粘贴的过渡,在过滤范围时效果很好,但显然不是从范围中删除时.

javascript angularjs ng-animate angularjs-animation

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

进程内存不足时删除大型Javascript对象

我是这种javascript的新手,所以我将给出一个简短的解释:

我有一个内置的web scraper,Nodejs它收集(相当多)数据,处理它Cheerio(基本上是jQuery为了Node)创建一个对象,然后将其上传到mongoDB.

它工作得很好,除了在较大的网站上.什么是似乎要发生的事情是:

  1. 我给刮刀一个在线商店的URL来刮
  2. 节点转到该URL并检索5,000到40,000个产品URL中的任何地方
  3. 对于这些新URL中的每一个,Node的request模块获取页面源,然后将数据加载到Cheerio.
  4. 使用Cheerio我创建了一个代表产品的JS对象.
  5. 我将对象发送到MongoDB,并将其保存到我的数据库中.

正如我所说,这发生在成千上万的URL上,一旦我到达,比如,加载了10,000个url,我在节点中出现错误.最常见的是:

Node: Fatal JS Error: Process out of memory
Run Code Online (Sandbox Code Playgroud)

好的,这是实际的问题:

认为这是因为Node的垃圾清理工作不正常.例如,request从所有40,000个URL中抓取的数据仍然可能存在于内存中,或者至少可以创建40,000个javascript对象.也许这也是因为MongoDB连接是在会话开始时进行的,并且永远不会关闭(我只需在完成所有产品后手动关闭脚本).这是为了避免每次登录新产品时打开/关闭连接.

要真正确保它们被正确清理(一旦产品进入MongoDB我不再使用它并且可以从内存中删除)可以/我应该只是简单地从内存中删除它,只需使用delete product

Moreso(我显然不是JS如何处理对象)如果我删除一个对象的引用是它完全从内存中删除,还是我必须删除所有这些?

例如:

var saveToDB = require ('./mongoDBFunction.js');

function getData(link){
    request(link, function(data){
        var $ = cheerio.load(data);
        createProduct($)
    })
}

function createProduct($)   
    var product = {
        a: 'asadf',
        b: 'asdfsd'
        // there's about 50 lines of data in here in …
Run Code Online (Sandbox Code Playgroud)

javascript memory-leaks memory-management mongodb node.js

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

MongodDB $只从数组中拉出一个元素

我有一个内部有数组的文档,如下所示:

"userTags" : [
        "foo",
        "foo",
        "foo",
        "foo",
        "moo",
        "bar"
    ]
Run Code Online (Sandbox Code Playgroud)

如果我执行,db.products.update({criteriaToGetDocument}, {$push: {userTags: "foo"}}}我可以正确插入foo数组的另一个实例.

但是,如果我这样做,db.products.update({criteriaToGetDocument}, {$pull: {userTags: "foo"}}}它会从数组中删除所有实例foo,让我:

"userTags" : [
        "moo",
        "bar"
    ]
Run Code Online (Sandbox Code Playgroud)

这根本不会做,我只想从数组中拉出一个项而不是全部.如何更改命令以便只foo删除一个命令?有什么$pullOnce方法可以在这里工作吗?

database arrays mongodb nosql

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

为Angular Material配置黑暗主题

我正在为我的webapp设计一个设计,我想要一个类似于这里看到的黑暗主题.

可悲的是,我发现Angular Material Theming Docs非常难以理解; 没有提到每种颜色的使用位置,如何设置背景颜色或文本颜色等.

我目前正在使用:

.config(function($mdThemingProvider) {
    $mdThemingProvider.definePalette('coolpal', {"50":"#d9ddec","100":"#a6b1d2","200":"#8190bf","300":"#5468a5","400":"#495b90","500":"#252830","600":"#354168","700":"#2a3453","800":"#20283f","900":"#161b2b","A100":"#252830","A200":"#a6b1d2","A400":"#495b90","A700":"#2a3453"});
    $mdThemingProvider.definePalette('accentpal', {"50":"#ffffff","100":"#bfe7f7","200":"#8dd5f1","300":"#4ebee9","400":"#32b4e5","500":"#1ca8dd","600":"#1993c2","700":"#157fa7","800":"#126a8c","900":"#0e5570","A100":"#ffffff","A200":"#bfe7f7","A400":"#32b4e5","A700":"#157fa7"});
    $mdThemingProvider.definePalette('warnpal', {"50":"#f0fdf9","100":"#adf4dc","200":"#7bedc7","300":"#3ce5ac","400":"#21e1a0","500":"#1bc98e","600":"#17ae7b","700":"#149368","800":"#107855","900":"#0d5d42","A100":"#f0fdf9","A200":"#adf4dc","A400":"#21e1a0","A700":"#149368"});


    $mdThemingProvider.theme('default')
        .primaryPalette('coolpal').dark()
        .accentPalette('accentpal')
        .warnPalette('warnpal')
        .backgroundPalette('coolpal')
})
Run Code Online (Sandbox Code Playgroud)

有点黑色的颜色,这可以正常,但如果我看一下颜色md-toolbar,文本设置为rgba(0,0,0,0.87);,我不知道如何改变它; 我以为它会来自我coolpal主题的某个地方,但事实并非如此.这是我的文本元素的样式:

Angular Material mdthemingprovider示例

如何更改$mdThemingProvider以确保文本是浅色而不是不透明的黑色?

javascript angularjs material-design angular-material

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

MongoDB/Mongoose:MarkModified一个嵌套对象

不幸的是我没有记录我可以测试这个,但我无法在任何地方找到任何相关信息.

说我有这样的文件:

{
  email:  {
       type: 'Gmail',
       data: {//freeform data},
    }
}
Run Code Online (Sandbox Code Playgroud)

我想更新doc.email.data.我需要使用markModified(),否则数据将无法正确保存.

我这样修改了吗?

doc.email.data = newData;
doc.markModified('email.data');
doc.save();
Run Code Online (Sandbox Code Playgroud)

或者我只是这样做,markModified('email')而Mongoose会解决剩下的问题吗?

javascript mongoose mongodb node.js

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

Gulp Browsersync会在每次文件更改时导致多次重新加载

我正在使用与Gulp的browsersync,在特定的文件更改上运行一些任务.每当我保存文件时,[BS] Reloading Browsers...我的终端都会得到10+ ,并且性能可以理解为滞后.

这是我的gulpfile:

gulp.task('bowerJS', function() {
  gulp.src(lib.ext('js').files)
    .pipe(concat('lib.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest('app/assets/js'));
});

gulp.task('bowerCSS', function() {
  gulp.src(lib.ext('css').files)
    .pipe(concat('lib.min.css'))
    .pipe(gulp.dest('app/assets/css/'));
});


// Compile sass into CSS & auto-inject into browsers
gulp.task('less', function() {
    gulp.src('./app/css/*.less')
        .pipe(less())
        .pipe(autoprefixer({
          browsers: ['last 2 versions'],
          cascade: false
        }))
        .pipe(gulp.dest('app/assets/css'))
        .pipe(browserSync.stream());
});

// Render Jade templates as HTML files

gulp.task('templates', function() {
  gulp.src('views/**/*.jade')
    .pipe(jade({
      pretty: true
    }))
    .pipe(gulp.dest('app/src/'))
});

gulp.task('php', function() {
    php.server({ base: 'app', port: 8123, keepalive: true});
});
gulp.task('serve', ['bowerJS', 'bowerCSS', 'less', 'templates', …
Run Code Online (Sandbox Code Playgroud)

javascript node.js gulp browser-sync gulp-browser-sync

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

React Navigation - 从选项卡栏打开模式

使用 React Navigation (6),我将底部选项卡设置为我的主导航器:


export function TabNavigator() {
  const getColor = ({ focused, color }) => (focused ? palette.blue : color)

  return (
    <Tab.Navigator screenOptions={{ headerShown: false }}>
      <Tab.Screen
        name="home"
        component={HomeScreen}
        options={{
          tabBarLabel: "Home",
          tabBarIcon: ({ size, ...rest }) => (
            <Ionicons name="home-outline" color={getColor(rest)} size={size} />
          ),
        }}
      />
      <Tab.Screen
        name="favourites"
        component={FavouritesScreen}
        options={{
          tabBarLabel: "Favourites",
          tabBarIcon: ({ size, ...rest }) => (
            <Ionicons name="heart-outline" color={getColor(rest)} size={size} />
          ),
        }}
      />
      <Tab.Screen
        name="about"
        component={AboutYouScreen}
        options={{
          tabBarLabel: "About you",
          tabBarIcon: ({ size, …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native react-navigation

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

与AngularJS和JSON一起使用的数据库类型

无法找到任何探索Angular此类问题的资源,如果您知道任何事情,请随时将我链接到正确的方向.

我正在使用Angular为移动设备建立一个在线商店(在这个阶段只有移动设备).

系统的核心是产品(每个产品都有名称,设计师,描述,颜色,价格,类别,商店位置和其他一些产品).

我现在将所有这些存储在JSON文件中并将其加载到Angular中,但是我添加的产品越多,这就变得越难以管理.

我想做什么:

我想要一个可以发送一些查询的数据库(例如:"男士,衬衫,

我唯一接触过的后端系统是MySQL(并没有那么多).我知道足够的PHP让我自己,我会说初学者 - 中级(我是一个前端开发者).

这种东西最适合任何特定类型的数据库吗?AngularJS有什么特别的"玩得好"吗?

php database json angularjs

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

确保一个AngularJS控制器在另一个之前加载

我将以这样一个事实为前提:我真的不知道这是否是实现我正在做的事情的最佳方式,而且我对更好的建议非常开放.

我有一个用户帐户系统使用OAUTH2它来查找我的数据库中的用户信息并将其保存为变量,$rootScope.userInfo.它驻留在一个附加到我的应用程序的控制器中body; 在这里,我认为最高级别的控制器会在其中存在之前加载,但显然不是.

如果我加载了一个试图$rootScope.userInfo在我mainCtrl有机会从我的数据库加载它之前尝试访问该对象的视图,它会抛出一个javascript错误并Angular中断.

作为参考,这里是模板的粗略概念:

<body ng-controller="mainCtrl">
    <header>Content</header>
    <div class='main-view' ng-controller="userProfile">
        <p>{{user.name}}</p>
        <p>{{user.email}}</p>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

我加载$rootScope.userInfomainCtrl这样的:

$http.get('/api/users/' + $cookies.id).
    success(function(data) {
      $rootScope.userInfo = data.user[0];
      console.log("User info is:");
      console.log($rootScope.userInfo);
      $scope.status = 'ready';
    });
Run Code Online (Sandbox Code Playgroud)

然后为了我的userProfile控制,我做:

function userProfile($scope, $cookies, $http, $routeParams, $rootScope){
  if($scope.status == 'ready'){
    $scope.user = $rootScope.userInfo;
    console.log("Double checking user info, here it is:");
    console.log($rootScope.userInfo);
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我来自应用程序中不打开的其他页面$rootScope.userInfo,则API有足够的时间查找并且我的userProfile页面工作正常.但是,如果进行整页刷新,$rootScope.userInfo则没有时间加载,我会收到错误. …

javascript angularjs

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