小编And*_*iga的帖子

在 M1 Mac 上构建时 Docker 失败(exec /usr/local/bin/docker-entrypoint.sh:exec 格式错误)

我有一个遗留项目正在运行docker-compose。一年前,它是从以下配置开始的。

现在它抛出一个错误:

exec /usr/local/bin/docker-entrypoint.sh: exec format error
Run Code Online (Sandbox Code Playgroud)

我想使用 CMD 配置运行容器。我在网上发现#!/bin/bash需要添加以避免这个错误,我将其添加到Dockerfile中。

没有自定义docker-entrypoint.sh定义。据我了解,需要有一个入口点或一个命令。

CMD 的主要目的是为执行容器提供默认值。这些默认值可以包含可执行文件,也可以省略可执行文件,在这种情况下,您还必须指定 ENTRYPOINT 指令。

Dockerfile

#!/bin/bash

#nodejs
FROM node:11.15
ENV NODE_VERSION 11.15

#app directory
WORKDIR ./

#mongodb tools
RUN wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | apt-key add -
RUN echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | tee /etc/apt/sources.list.d/mongodb-org-5.0.list
RUN apt-get update
RUN apt-get install -y mongodb

RUN apt-get install nano

#nodejs packages
# A wildcard is used to ensure both package.json AND package-lock.json are copied …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

AngularJS测试:Yeoman App中的量角器,Karma,Jasmine

我使用这个yeoman生成器:https: //github.com/Swiip/generator-gulp-angular

它安装了三个测试应用程序:Jasmine,Karma,Protractor根据这篇文章(我应该使用Protractor或Karma进行端到端测试吗?),我应该使用:Karma用于例如单个控制器的小测试.Protactor如果我想测试整个应用程序并模拟用户浏览我的应用程序.根据这篇博客(http://andyshora.com/unit-testing-best-practices-angularjs.html),我将使用Jasmine进行单元测试,使用Karma进行端到端集成测试.

我猜Jasmine是编写测试的语言,另外两个执行代码,这是正确的吗?另外,如果我从未写过一个更重要的是先学习/专注的测试?

jasmine karma-runner protractor e2e-testing

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

Nodejs:将Doc转换为PDF

我找到了一些repos,它看起来并不像它们仍然保持着:

我试过的方法libreoffice,但PDF输出是如此糟糕,这是不可用的(上差异文本.页等).

如果可能的话,我想避免启动任何后台进程和/或在服务器上保存文件.最好的解决方案是我可以使用缓冲区.出于隐私原因,我无法使用任何外部服务.

doc buffer -> pdf buffer

题:

如何在nodejs中将docs转换为pdf?

pdf doc node.js

13
推荐指数
2
解决办法
9961
查看次数

在 Node.js 中创建频谱图

如何从 WAV(或 AIFF)中提取时间/频率/幅度信息?我想要一个数组形式的频谱图,例如

\n
[ \n  [ // 1st sample, time\n    [frequency1_t1, amplitude_f1t1], [frequency2_t1, amplitude_f2t1], ...\n  ],\n  [ // 2nd sample, time\n    [frequency1_t2, amplitude_f1t2], [frequency2_t2, amplitude_f2t2], ...\n  ]\n]\n
Run Code Online (Sandbox Code Playgroud)\n

(或类似,形状不相关)

\n

目前我不明白:

\n

我期望一个数组,其中包含频谱中每个频率的值。例如 0.2 代表 40Hz,0.3 代表 41Hz 等等...但我得到一个样本长度一半的数组。

\n

代码:

\n
require(\'dotenv\').config()\nconst fs = require(\'fs\');\nconst ft = require(\'fourier-transform\');\nconst db = require(\'decibels\');\nconst sine = require(\'audio-oscillator/sin\');\nconst WaveFile = require(\'wavefile\');\nconst {unpackArray} = require(\'byte-data\');\n\n\nconst generateLength =  1024// 11289600; // 1024\n\n/**\n * Return the sample at a given index.\n * @param {number} startIndex …
Run Code Online (Sandbox Code Playgroud)

audio spectrogram node.js web-audio-api

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

NodeJS 7:如何在异步Mongoose Promises中显示正确的堆栈跟踪

当我在mongoose承诺中有错误时bluebird.我没有正确的行号,这使我很难找到错误.

unknownFunction("A")#show me the correct line number in the trace
async.timesSeries 100,
  (index, next) ->
     unknownFunction("B") #show me only the line number where I catch the error

process.on 'uncaughtException', (err)->
  console.log err.stack
  console.trace err 
  throw err
Run Code Online (Sandbox Code Playgroud)

问题:如何获取正确的行号而不是捕获错误的行号?

PS:到目前为止我找到并尝试过这个:https: //github.com/groundwater/node-stackup 但它给了我很多不相关的行号.

编辑:

这就是我用bluebird初学mongoose的方式:

Promise = require("bluebird")
Promise.config({
  longStackTraces: true
  warnings: {
    wForgottenReturn: false
  }
})
mongoose = require('mongoose')
mongoose.Promise = Promise
mongoose.set('error', true)
Run Code Online (Sandbox Code Playgroud)

示例正确:

在此输入图像描述

  ReferenceError: unknownFunction is not defined

  - patient.update.js:267 
Run Code Online (Sandbox Code Playgroud)

示例错误:

在此输入图像描述

somepath/.tmp/serve/server.js:294
      throw err; …
Run Code Online (Sandbox Code Playgroud)

error-handling asynchronous node.js

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

NestJs:动态创建类的实例

我想在 NestJs 中动态创建类实例,而不是单例。

我找到了两种方法:

1)直接创建类(ChripSensor则不是@Injectable)

import { ChirpSensor } from './chirp-sensor/chirp-sensor';

@Injectable()
export class SensorsService {
  registeredSensors: any;
  constructor(
    @InjectModel('Sensor') private readonly sensorModel: Model<ISensor>,
    private i2cService: I2cService) {
       const sensors = this.i2cService.getSensors();
       sensors.forEach((sensor) => {this.registeredSensors[sensor._id] = new ChirpSensor({name: sensor.name})});

    }
Run Code Online (Sandbox Code Playgroud)

我想知道这是否与nest.js的DI方式一致

2)第二种解决方案是通过工厂,但在这里我不知道如何传递选项。

export const chirpFactory = {
  provide: 'CHIRP_SENSOR',
  useFactory: (options) => {
    console.log('USING FACTORY CHIRP, options', options)
    if (process.env.SIMULATION === 'true') {
      return new ChirpSensorMock(options);
    }
    else {
      return new ChirpSensor(options);
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

不太确定如何继续这里/正确注入工厂,因为示例在构造函数中创建对象而没有选项?

问题:

NestJs …

factory dependency-injection nestjs

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

Angular ui-router:父和子视图

我想构建一个具有以下结构header-view,main-view,footer-view的站点.所以我定义了一个包含页眉和页脚的根路由.root的孩子将成为我的所有站点.在这些站点中,我将拥有更多嵌套视图.

在下面的代码中,它确实显示标题,但不显示页脚和主视图.一旦我删除父继承,它就会显示主视图,但不会显示页眉和页脚.

HTML

<body ng-app="App">
    <header ui-view="header"></header>
    <main ui-view></ui-view>
    <footer ui-view="footer"></footer>
</body>
Run Code Online (Sandbox Code Playgroud)

JS

   module.config(function($urlRouterProvider, $stateProvider) {
      $urlRouterProvider.otherwise('/home');
      $stateProvider
        .state('root', {
          abstract: true,
          views: {
            '@': {
                controller: 'RootCtrl',
                controllerAs: 'rootCtrl'
            },
            'header@': {
                templateUrl: 'modules/header/header.html',
                controller: 'HeaderCtrl',
                controllerAs: 'headerCtrl'
            },
            'footer@': {
                templateUrl: 'modules/footer/footer.html',
                controller: 'FooterCtrl',
                controllerAs: 'footerCtrl'
                }
           }
        })
        .state('root.home',{
            parent:'root',
            url:'',
            templateUrl:'modules/home/home.html',
            controller: 'HomeController',
            controllerAs:'homeCtrl'
        });
    });
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router

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

FileSync找不到我的文件

FileySync找不到找到的其他模块的子文件夹(我也尝试过相同的文件夹)中的文件。

资料夹结构

console.log __dirname
https = require('https')
fs = require('fs')
sslOptions = {
  key: fs.readFileSync('./config/ssl/server.key'),
  cert: fs.readFileSync('./config/ssl/server.crt'),
  ca: fs.readFileSync('./config/ssl/ca.crt'),
  requestCert: true,
  rejectUnauthorized: false
}
secureServer = https.createServer(sslOptions,app).listen('3030', () ->
  console.log("Secure Express server listening on port 3030")
)

configDB = require('./config/database.js')(environment)
Run Code Online (Sandbox Code Playgroud)

找到database.js,没有找到ssl文件。记录的目录名:

---my project folder--/.tmp/serve
Run Code Online (Sandbox Code Playgroud)

文件权限:

配置

-rw-r--r--  1 MasterG  staff   93 14 Apr 14:06 config.js
-rw-r--r--  1 MasterG  staff  526 14 Apr 14:06 database.js
drwxr-xr-x  6 MasterG  staff  204 14 Apr 13:51 ssl
Run Code Online (Sandbox Code Playgroud)

ssl

-rw-r--r--  1 MasterG  staff  912 14 Apr …
Run Code Online (Sandbox Code Playgroud)

ssl node.js

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

错误TS2403:后续变量声明必须具有相同的类型

错误

我收到此打字稿错误:

错误TS2403:后续变量声明必须具有相同的类型。变量“环境”必须为“字符串”类型,但此处为“任何”类型。

package.json

...
"typescript": "^1.8.10",
...
Run Code Online (Sandbox Code Playgroud)

server.ts

var environment = require('./config/config.js')()
Run Code Online (Sandbox Code Playgroud)

./config/config.ts

module.exports = function(): string {
  //Environment
  let env:string = process.env.NODE_ENV || 'development'
  return env
}
Run Code Online (Sandbox Code Playgroud)

题:

我需要做些什么才能使函数的返回值识别为a string

编辑

tsconfig

{
  "compilerOptions": {
    "target": "ES5",
    "module": "system",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

安装节点

我加了一个typings.json

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160602141332",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160621231320"
  }
} …
Run Code Online (Sandbox Code Playgroud)

typescript

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

Web3 JS 库(和 Metamask),获取代币余额

我想查询一个公钥的 eth 余额和所有代币余额。到目前为止,我设法加载web3并调用了该getBalance方法。

现在,我想查看使用相同公钥存储的 ERC20 代币的余额?例如我想查看OMG代币余额?

到目前为止我发现每个代币合约地址都要查询:https : //ethereum.stackexchange.com/questions/15372/how-can-i-view-all-the-tokens-and-contracts-related-with- an-ethereum-address

omgContractAddress = "0xd26114cd6EE289AccF82350c8d8487fedB8A0C07"
OmgContract = web3.eth.contract(abi)
omgContract = OmgContract.at(omgContractAddress)
someUsersAddress = "0x75087d9faa28d653750f3e4c86e7dcf6aff0a916"
omgContract.balanceOf someUsersAddress, (err, balance)-> #some owner
        console.error err
        console.info balance.toNumber()
Run Code Online (Sandbox Code Playgroud)

问题:

1) 我需要abi每个令牌的 吗?或者我可以使用标准化abi的 ERC20 代币,只要我只想使用标准化的方法吗?

2)我在哪里可以找到abi?还是我需要重新编译每个合同?

例如 OMG:https : //etherscan.io/token/OmiseGo

balance abi web3js

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