小编use*_*718的帖子

mongodb kerberos同伴依赖

尝试全局安装mongodb或mongoose会导致Kerberos缺少对等依赖项

Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb
/usr/local/lib
??? mongodb@2.0.48 
  ??? UNMET PEER DEPENDENCY kerberos@~0.0

npm WARN EPEERINVALID mongodb-core@1.2.21 requires a peer of kerberos@~0.0 but none was installed.
Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb
- nan@2.0.9 node_modules/mongodb/node_modules/kerberos/node_modules/nan
- kerberos@0.0.17 node_modules/mongodb/node_modules/kerberos
/usr/local/lib
??? mongodb@2.0.48 
  ??? UNMET PEER DEPENDENCY kerberos@~0.0

npm WARN EPEERINVALID mongodb-core@1.2.21 requires a peer of kerberos@~0.0 but none was installed.
Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongoose
/usr/local/lib
??? mongoose@4.2.5 
  ??? async@0.9.0 
  ??? bson@0.4.19 
  ??? hooks-fixed@1.1.0 
  ??? kareem@1.0.1 
  ??? mongodb@2.0.48 …
Run Code Online (Sandbox Code Playgroud)

kerberos mongoose mongodb node.js

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

Jest 部分模块模拟未被调用

我真的不确定我是否以正确的方式这样做!

我有一个正在测试的模块和一个测试脚本。MUT 中有 2 个函数,其中一个函数使用另一个函数。我尝试模拟该模块以用模拟替换实际的支持功能,但它似乎没有被调用。我这样做是正确的还是你不能因为引用平等而这样做?

穆特

const total_users = 100;

export function getRandomIntInclusive(min=0, max=0) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive
}

export default function getUsername(name='user'){
  return `${name}_${getRandomIntInclusive(1, total_users)}`;
}
Run Code Online (Sandbox Code Playgroud)

测试代码:

import getUsername, {getRandomIntInclusive} from "../generateUsername";

const randomSpy = jest.spyOn(Math, 'random');


jest.mock('../generateUsername', () => {
  const originalModule = jest.requireActual('../generateUsername');

  return {
    __esModule: true,
    ...originalModule,
    getRandomIntInclusive: jest.fn((min=0, max=0) => 5), // <-- …
Run Code Online (Sandbox Code Playgroud)

jestjs

10
推荐指数
0
解决办法
5190
查看次数

Gulp量角器:selenium webdriver退出状态1

我一直在使用Bangular(一个优秀的MEAN堆栈Yeoman生成器)来创建一个项目,一切顺利,直到我最近对该项目进行了一系列npm更新.现在我的项目(以及他们的项目)我在运行他们的gulp-protractor任务时遇到错误(过去工作正常).

我已经包含了完整的输出以供参考,如果它有帮助 - 错误是一半的下降(滚动代码框):

Jamess-MacBook-Pro:test jamessherry$ gulp e2e
[10:05:48] Using gulpfile ~/sites/test/gulpfile.js
[10:05:48] Starting 'sass'...
[10:05:48] Finished 'sass' after 30 ms
[10:05:48] Starting 'inject'...
[10:05:48] gulp-inject 7 files into index.html.
[10:05:48] gulp-inject 11 files into index.html.
[10:05:48] Finished 'inject' after 80 ms
[10:05:48] Starting 'watch'...
[10:05:48] Finished 'watch' after 27 ms
[10:05:48] Starting 'nodemon'...
[10:05:48] [nodemon] 1.7.1
[10:05:48] [nodemon] to restart at any time, enter `rs`
[10:05:48] [nodemon] watching: *.*
[10:05:48] [nodemon] starting `node server/server.js`

Express server listening …
Run Code Online (Sandbox Code Playgroud)

selenium node.js selenium-webdriver protractor gulp-protractor

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

Nodejs:如何向浏览器发送可读流

如果我查询框 REST API 并返回一个可读流,处理它的最佳方法是什么?怎么发送到浏览器呢?(免责声明:我对流和缓冲区很陌生,所以其中一些代码非常理论化)

你能在响应中传递readStream并让浏览器处理它吗?或者您是否必须将块流式传输到缓冲区然后发送缓冲区?

export function getFileStream(req, res) {
  const fileId = req.params.fileId;
  console.log('fileId', fileId);
  req.sdk.files.getReadStream(fileId, null, (err, stream) => {
    if (err) {
      console.log('error', err);
      return res.status(500).send(err);
    }
    res.type('application/octet-stream');
    console.log('stream', stream);
    return res.status(200).send(stream);
  });
}
Run Code Online (Sandbox Code Playgroud)

会 ^^ 工作,或者你需要做类似的事情:

export function downloadFile(req, res) {
  const fileId = req.params.fileId;
  console.log('fileId', fileId);
  req.sdk.files.getReadStream(fileId, null, (err, stream) => {
    if (err) {
      console.log('error', err);
      return res.status(500).send(err);
    }
    const buffers = [];
    const document = new Buffer();
    console.log('stream', stream);
    stream.on('data', (chunk) => { …
Run Code Online (Sandbox Code Playgroud)

node.js box

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

不能将提供者注入Karma测试

我正在尝试将$ urlRouterProvider注入我的测试中,但我一直在解决未知的提供程序问题.我正在使用ui.router和测试指令,并且需要能够访问这些提供程序,或者所有测试都失败了......

navbar.spec.js

'use strict';

describe('Directive: nav-bar', function () {

  beforeEach(module('ui.router'));
  beforeEach(module('ngMock'));
  beforeEach(module('kitchenapp'));


  var $httpBackend,
    $templateCache,
    $compile,
    $urlRouterProvider,
    $scope;

  beforeEach(inject(function (_$httpBackend_, _$templateCache_, _$compile_, _$urlRouterProvider_) {


    $httpBackend = _$httpBackend_;
    $templateCache = _$templateCache_;
    $compile = _$compile_;
    $urlRouterProvider = _$urlRouterProvider_;

    $urlRouterProvider.deferIntercept();

    $scope = $rootScope.$new();
    element = angular.element('<nav-bar></nav-bar>');
    element = $compile(element)(scope);
    $rootScope.$$phase || $rootScope.$apply();


  }));

  afterEach(function () {
    $httpBackend.verifyNoOutstandingExpectation();
    $httpBackend.verifyNoOutstandingRequest();
  });

  it('\'s brand link should be titled \'KitchenApp\' and should navigate to the root address when clicked', function () {

    expect(2).toEqual(2);

  });


});
Run Code Online (Sandbox Code Playgroud)

Karma.conf.js …

javascript angularjs karma-runner

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

docker:shell脚本中的参考格式无效

我正在尝试创建一个shell脚本来运行一个docker容器并且正在挣扎.我的脚本是这样的:

#!/bin/bash

if [ "$1" == "" ]; then
    echo "Usage > run.sh IMAGE NAME"
    echo
    echo "i.e. ./build.sh cd2:0.0.49"
    exit
fi

echo $1

docker run -it --rm \
-e NODE_PATH='./src'\
-e NODE_HOST='0.0.0.0'\
-e NODE_ENV='production'\
-e DOCKER=true\
-e PORT='8080'\
-e STAGING=true\
-e SENDGRID_API_KEY='<redacted>'\
-p 8080:8080 $1
Run Code Online (Sandbox Code Playgroud)

当我跑: bash run.sh cd2:0.0.50

我明白了: docker: invalid reference format: repository name must be lowercase.

即使我这样做bash run.sh cd:0.0.50仍然失败(echo $1结果cd2:0.0.50).

如果我从命令行运行docker run -it --rm -p 8080:8080 cd2:0.0.50它工作...

有人可以帮忙吗?

bash shell docker

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

快递中的资产路径

我使用以下内容在我的节点应用程序中声明我的资产路径:

app.use("/styles", express.static(__dirname + '/public/styles'));
app.use("/images", express.static(__dirname + '/public/images'));
app.use("/script", express.static(__dirname + '/public/script'));
Run Code Online (Sandbox Code Playgroud)

...但它似乎是在资产路径中添加url路径(例如'/ search'),然后将其传递给逻辑.所有路径都是相对的便携性 - 我该如何避免这种情况?

提前致谢... :)

詹姆士

node.js express

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

不能用mongoose将项目推送到数组中

我正在尝试使用POST请求将项添加到用户对象中的集合中.

  User.findOneAndUpdate(
    {"_id": req.body.userid}, 
    {$push: {'shopping_list': req.body.itemid}},
    {safe: true, upsert: true},
    function(err, Model){
      console.log(err, Model);
      if(err){
        handleError(res, err);
      }
      return res.status(201).json(Model);
    }
  );
Run Code Online (Sandbox Code Playgroud)

我一直收到以下错误:

{"name":"MongoError","message":"exception:'$ push'为空.您必须指定如下字段:{$ push:{:...}}","value":{" _id ":" 5546cc0483b0186428e252cc", "电子邮件": "lilly@test.com", "passwordHash": "Q + VpK9L + I/DhAm7w01AArMacBkXEdyHp3zGF6JyJVzDhwgHpws4z8IBxycI7xrRX6Do2AEe/BvI37HauvAc6WA ==", "盐": "0Bi6XW0YuxutizQY3PZH4Q ==", "预算" :5000,"shopping_list":[],"橱柜":[],"饭":[],"__ v":0},"errmsg":"例外:'$ push'为空.你必须指定一个字段像这样:{$ push:{:...}}","code":9,"ok":0}

我不明白为什么会发生这种情况,因为字段'shopping_list'清晰可见并且值传递...

谁知道我做错了什么?

javascript mongoose mongodb node.js

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