小编Jim*_*Jim的帖子

为什么我的 Github Pages 自定义域不断重置?

我进入 Github ( https://github.com/user/repo/settings/pages ) 中的页面并设置一个自定义域。效果很好!

但是,每次我部署(使用 gh-pages npm 包)时,它都会将域重置回

 https://user.github.io/repo
Run Code Online (Sandbox Code Playgroud)

这非常令人沮丧......我怎样才能告诉它永久使用我的自定义域?

github web-deployment github-pages

16
推荐指数
1
解决办法
2274
查看次数

为什么这个Typescript输出"[Class]不是构造函数."?

我在visual studio中使用typescript 1.5.我有一个名为app.ts的主类,另一个叫做FizzBu​​zzManager.ts.我无法弄清楚这段代码有什么问题,但它输出错误,"TypeError:jim.FizzBu​​zzManager不是构造函数".

app.ts

 namespace jim {
    class Greeter {
        element: HTMLElement;
        span: HTMLElement;
        timerToken: number;

        constructor() {
            window.console.log("constructing Greeter.");
            this.init();
        }

        private init() {
            window.console.log("Calling init.");
            var _fizzBuzzManager: any = new jim.FizzBuzzManager();
    }

}

    window.onload = () => {
        window.console.log("Hello")
        var greeter = new Greeter();

};
Run Code Online (Sandbox Code Playgroud)

FizzBu​​zzManager.ts

namespace jim {

export class FizzBuzzManager {

    constructor() {
        window.console.log("Making a FizzBuzzManager.");
    }

    public myThing: String = "Hi";

    public fizzBuzz2() {
        window.console.log("fizzbuzzing2 " + this.myThing);
    }

}

export function fizzBuzz() {
    window.console.log("export …
Run Code Online (Sandbox Code Playgroud)

typescript

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

karma测试运行器没有运行任何测试

我正在使用茉莉花的业力,并通过安装使用跟随在线指南

npm install --save-dev karma
Run Code Online (Sandbox Code Playgroud)

和其他必需品

我跑了

./node_modules/karma/bin/karma start
Run Code Online (Sandbox Code Playgroud)

karma start karma.conf.js
Run Code Online (Sandbox Code Playgroud)

这打开了一个外部镀铬浏览器,显示业力是连接的.我为我的一个函数编写了一个简单的单元测试,它似乎根本没有运行任何测试

这是我的业力配置文件.

    // Karma configuration
module.exports = function(config) {
 config.set({
// base path, that will be used to resolve files and exclude
basePath: '',

// testing framework to use (jasmine/mocha/qunit/...)
frameworks: ['jasmine'],

// list of files / patterns to load in the browser
files: [
  'app/assets/components/angular/angular.js',
  'app/assets/components/angular-mocks/angular-mocks.js',
  'app/assets/javascripts/**/**/*.js',
  'spec/javascripts/**/*.js'
],

// list of files / patterns to exclude
exclude: [],

// web server port
port: 8080,

// …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing angularjs karma-runner

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

如何编写运行量角器/ Selenium浏览器自动化脚本的AWS Lambda脚本?

我非常喜欢AWS Lambda函数,我想知道我想在这里做什么是可能的.在我的本地机器上,我有一个Protractor配置文件:

// conf.js
exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
  specs: ['automation-script.js'],
  capabilities: {
    browserName: 'chrome'
  }
}
Run Code Online (Sandbox Code Playgroud)

和一个用某个url加载浏览器窗口的脚本:

describe('Protractor Demo App', function() {
  it('should have a title', function() {
    browser.driver.get('https://github.com/');

   // Click around and do things here.

  });
});
Run Code Online (Sandbox Code Playgroud)

我的脚本现在的目的不是黑盒子测试我正在开发的应用程序,而是自动执行我不喜欢的常见浏览器任务.

目前,我正在通过我的本地命令shell运行量角器脚本,如下所示:

protractor protractor.conf.js 
Run Code Online (Sandbox Code Playgroud)

我想知道是否可能从另一个node.js脚本中运行量角器.我的想法是,我可以通过使用Browserstack或Sauce Labs提供的浏览器启动Lambda函数开始量角器工作,但我无法弄清楚如何从Node.js脚本运行量角器.

javascript selenium node.js browserstack aws-lambda

13
推荐指数
1
解决办法
1233
查看次数

typeorm:migration create 在新项目上无法识别实体 - “未发现数据库架构更改 - 无法生成迁移。”

我在为 nestjs-typeorm-mongo 项目创建初始迁移时遇到问题。
从 nestjs克隆了这个示例项目,它使用 typeorm 和 mongodb。该项目确实有效,当我在将“照片”文档放入我的本地 mongo 并使用名为“test”和集合“photos”的数据库后在本地运行它时,我可以调用 localhost:3000/photo 并接收照片文档。

现在我正在尝试使用以下命令使用 typeorm cli 创建迁移:

./node_modules/.bin/ts-node ./node_modules/typeorm/cli.js migration:generate -n initial
Run Code Online (Sandbox Code Playgroud)

...但它不起作用。我无法创建初始提交 - 即使在我的app.module.ts文件中设置“同步:false”后,我总是收到错误消息:

未发现数据库架构更改 - 无法生成迁移。要创建新的空迁移,请在尝试生成迁移时使用“typeorm migration:create”命令...

除了将同步更改为 false 之外,我所做的唯一其他更改是ormconfig.json通过运行在项目根目录中添加一个文件typeorm init --database mongodb

{
   "type": "mongodb",
   "database": "test",
   "synchronize": true,
   "logging": false,
   "entities": [
      "src/**/*.entity.ts"
   ],
   "migrations": [
      "src/migration/**/*.ts"
   ],
   "subscribers": [
      "src/subscriber/**/*.ts"
   ],
   "cli": {
      "entitiesDir": "src",
      "migrationsDir": "src/migration",
      "subscribersDir": "src/subscriber"
   }
}
Run Code Online (Sandbox Code Playgroud)

database-migration mongodb typeorm nestjs

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

Firebase Web Auth在移动设备上不起作用?

我计划对我的webapp使用Firebase的提供程序身份验证,但它似乎无法在移动设备上运行.该网站在这里:

https://cypher.city

然后当您单击此按钮时: 在此输入图像描述

将出现一个弹出窗口.当您单击此按钮时: 在此输入图像描述

然后它应该去谷歌提供商认证流程.

我的代码看起来像这样:

var provider = new firebase.auth.GoogleAuthProvider();
  firebase.auth().signInWithRedirect(provider).then((result) => {
    // console.log('@$ signin wiht google worked!' + e +', user is: ' + firebase.auth().currentUser.uid);
    console.log('@$ signin wiht google worked!' + result.user);

  }).catch((e) => {
    console.log('@$ signin wiht google failed!' + e);

    firebase.auth().signInAnonymously().then((user) => {
      console.log('@$ signed in anonymously againQ ' + user.uid);
      // console.log('@$ and firebase knows it: ' + firebase.auth().currentUser.uid);
    }).catch((e) => {
      console.log('@$ signed in anonymously failed ' + e);

    })

  })
Run Code Online (Sandbox Code Playgroud)

问题是,虽然这在桌面上运行良好,但它在移动设备上根本不起作用.我已经尝试了"signInWithRedirect"和"signInWithPopup",但是当我在我的华为Honor手机上调用这些方法时,没有任何事情发生(在任何浏览器中).

我在这里做错了什么,或者Firebase网络身份验证是否无法在移动设备上运行?

javascript google-authentication firebase typescript firebase-authentication

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

Firebase实时数据库中存在"多路径推送"这样的事情吗?

我正在观看此视频,该视频讨论了Firebase中的多路径更新.多路径更新很棒,因为它们允许您调用firebaseRef.update()方法两次或更多次,同时使它们成为一个原子,全有或全无操作.

这很好,但在我目前的情况下,我不想使用update()方法.相反,我想使用FirebaseRef的推送方法,并允许Firebase为我的对象生成唯一键.

棘手的部分是我已经对我的数据进行了非规范化,以便它在两个地方.我真正想做的是使用Firebase的push()操作创建一个唯一的密钥,然后使用该密钥将对象保存在我的数据库数据内的两个或多个不同的位置,这是一个原子的,全有或全无操作.但是,push()的语法已经使用了一个对象,所以我想做什么呢?

注意:另一种可能的解决方案可能是使用Firebase api以某种方式在客户端生成唯一键,然后使用生成的键作为插入对象的键进行标准多路径更新.

nosql firebase firebase-realtime-database angularfire2 angular

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

Angular 2 ngrx:在reducer 中不可变地更新对象数组的正确方法是什么?

在我的 Angular2 应用程序中,我使用 ngrx 来管理状态,因此当我从服务器接收数据时,我会向减速器分派一个动作。

MyExampleReducer.ts :

export const Reviews: ActionReducer<any> = (state: any[] = [], action: Action) => {
switch (action.type) {
        case GET_REVIEWS:
            return action.payload;
        case ADD_REVIEW :
            return [...state, {review : action.payload, replays : []}];
        case UPDATE_REVIEW:
            return  '' // return what ? 
        case DELETE_REVIEW:
            return state.filter(item => {
                return item.id !== action.payload.id;
            });
        default:
            return state;
    }
};
Run Code Online (Sandbox Code Playgroud)

问题是当我必须更新我的评论数组中的一个项目时,以 redux 方式做的最好方法是什么?

redux ngrx angular

5
推荐指数
2
解决办法
5392
查看次数

如何在Angular 2中使用ngModel过滤空值?

流:

  1. 用户提交带有一些数据的表单,用户未填写的一些可选字段在mongo中保存为"null".
  2. 稍后,用户决定编辑该表单.
  3. 服务抓取表单并将其显示给用户.
  4. 表单输入框显示"null",因为在步骤1中他没有填充它们.

所以,我创建了一个管道:

import {Pipe, PipeTransform} from '@angular/core';

@Pipe({
name: 'transformNull'
 })

export class TransformNull implements PipeTransform {

transform(value) {
if (value == null) {
  return null;
 }
}
Run Code Online (Sandbox Code Playgroud)

然后,在HTML中我试图分解ngModel:

[ngModel]="user.extraInfo | transformNull" (ngModelChange)="user.extraInfo.value=$event"
Run Code Online (Sandbox Code Playgroud)

这导致了这个错误:

Cannot set property 'value' of undefined TypeError: Cannot set property 'value' of undefined
Run Code Online (Sandbox Code Playgroud)

我试图用*ngIf ="isDataAvailable"延迟页面加载,错误消失,用户可以保存表单,值存储到mongo 但是当他刷新页面时,输入框为空.

然后我删除了*ngIf,添加了elvis运算符,但值错误又回来了.

我正在使用zone.js v0.7.4,试用0.7.2和0.7.5但没有运气.

我在这里错过了什么?

angular2-forms angular2-services angular

3
推荐指数
1
解决办法
5361
查看次数

返回 Option&lt;Vec&lt;_&gt;&gt; 更好还是只返回空 Vec&lt;_&gt; 更好?

假设我正在编写一个函数,它接受一堆字符串并过滤掉“坏”字符串。

然后该函数返回一些字符串,但有可能所有字符串都被过滤掉。

所以我想知道,我应该用Option这里吗?我可以看到,None当所有字符串都是“坏”时,该函数返回选项变体,Some当字符串是“好”时,它返回变体,这是有道理的。

函数签名可能如下所示:

pub fn filter_strings(inputs: Vec<String>) -> Option<Vec<String>> {
    // Todo...
}
Run Code Online (Sandbox Code Playgroud)

但将其设为 真的有任何意义吗Option

这是否会让事情变得不必要地更加复杂,因为消费者现在需要检查变体以及它返回空向量的None情况?Some

在 Rust 中,仅返回字符串向量是否更简单、更“惯用”?

pub fn filter_strings(inputs: Vec<String>) -> Vec<String> {
    // Todo...
}
Run Code Online (Sandbox Code Playgroud)

还是Option在这里使用我所缺少的一些优点?

idioms vector rust option-type

3
推荐指数
1
解决办法
502
查看次数

为什么不能通过Npm脚本运行BASH脚本来设置Env变量?

我有一个nodejs javascript项目,但我想在本地设置一堆环境变量。创建了一个仅导出一些变量的bash文件:

#!/usr/bin/env bash

export waka=flaka
export fat=booty
Run Code Online (Sandbox Code Playgroud)

当我使用点作为源代码并从命令行运行文件时,它工作正常:

. ./env.sh
Run Code Online (Sandbox Code Playgroud)

我可以看到变量已设置

echo $waka  # prints "flaka"
Run Code Online (Sandbox Code Playgroud)

但是然后我尝试通过将此命令添加到我的package.json中,使其成为npm脚本。

scripts: {
  "set-env": ". ./env.sh",
  ...
 }
Run Code Online (Sandbox Code Playgroud)

然后运行它:

npm run set-env
Run Code Online (Sandbox Code Playgroud)

脚本已运行,但未保存环境变量:

echo $waka  # prints undefined (assuming you didn't already run it from command line)
Run Code Online (Sandbox Code Playgroud)

因此,我想知道为什么它不将环境变量保存为npm脚本,以及是否有可能以某种方式从npm脚本运行bash脚本,以便将环境变量保存到命令提示符的其余部分。会议。谢谢!

bash npm npm-scripts

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

Firebase安全问题 - 如何让一个用户更改另一个用户的数据库对象?

我正在构建一个HTML/JavaScript/CSS前端应用程序,仅使用Firebase作为我的后端(我想保持这种方式,但我不确定如果没有其他服务器我是否可以做什么) .

我正在尝试实现以下/关注者功能.我在Firebase数据库中有一个节点,它基本上是一个用户列表.对象键是用户的auth uid,值是描述该用户对象属性的对象.

在此输入图像描述

我希望在我的应用程序中有一个"跟随"按钮,当单击时,会将一个对象与用户的uid一起添加到当前用户的"跟随"对象.此外,我想将当前用户的uid对象添加到被跟踪用户的"关注者"节点.

粉丝节点:

在此输入图像描述

以下节点:

在此输入图像描述

我遇到的麻烦是Firebase建议设置这样的安全规则:

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这样可以公开firebase密钥,因为任何给定的经过身份验证的用户只能在数据库中写入自己的对象.所以我的问题是:允许一个用户修改另一个用户的数据库对象(通过写入其他用户的"关注者"节点),同时仍然阻止任何使用我的Firebase密钥的人恶意写入任何/每个用户的对象,最好的方法是什么?

javascript firebase firebase-security firebase-realtime-database

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

更改 TypeScript 中特定键的值

我需要更改对象的值。在javascript中我会做类似的事情

data = {};

this.data.password = this.password;
Run Code Online (Sandbox Code Playgroud)

我可以做什么来更改或添加新的键/值到该对象?

javascript typescript angular

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