小编rob*_*lep的帖子

MongoDB 私有字段

我有一个产品模型,它有很多领域。其中一些专用于前端应用程序,例如:

var GameSchema = new Schema({
    likes: {
        type: [{
            type: Schema.ObjectId,
            ref: 'User'
        }]
    },
    likes_count: {
       type: Number
    }
});
Run Code Online (Sandbox Code Playgroud)

我不需要likes_countDb 中的字段,但控制器只返回模型具有的字段,所以我将likes_count字段添加到 db 模型

exports.some_method = function(req, res){
    var game = req.game;
    game.likes_count = game.likes.length
    res.json(game);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在发送请求时将额外数据添加到 db 模型中而不将它们放入 db 中?

请注意,问题不在likes_count现场本身,我有不同的模型,但重点是在 db 模型上有额外的数据。

mongoose mongodb node.js express

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

mongoose对子文档属性强制执行唯一属性

我无法分辨为什么在这些情况下不验证唯一属性

var UserSchema = new mongoose.Schema({
  name: { type: String},
  email: { type: String, unique: true, required: true },
});

var CustomerSchema = new mongoose.Schema({
   name: { type: String, unique: true, required: true },
   users:[UserSchema],
});
Run Code Online (Sandbox Code Playgroud)

当我将新用户推送到客户用户数组时,我可以使用相同的电子邮件属性添加相同的用户,而不会引起我期望的重复错误.

如果未提供属性值但必需属性,则必需属性会引发错误

这是预期的行为吗?

例如:

var customer = new Customer();
customer.name = 'customer_name';
customer.save(...);

for(var i = 0; i < 10; i++){
   var user = new User();
   user.email = 'mg@google.com';
   customer.users.push(user);
   customer.save(...);
}
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

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

"从facebook/react-native/Examples运行示例时,"观察更改文件时出错:EMFILE"

我想在OS X 10.12中运行来自facebook/react-native/Examples的示例.

首先我使用npm install然后使用npm start:

有一个错误:

Error watching file for changes: EMFILE
{"code":"EMFILE","errno":"EMFILE","syscall":"Error watching file for changes:","filename":null}
Error: Error watching file for changes: EMFILE
    at exports._errnoException (util.js:1008:11)
    at FSEvent.FSWatcher._handle.onchange (fs.js:1406:11)
Run Code Online (Sandbox Code Playgroud)

然后我使用Xcode运行代码,但有相同的错误.

我需要帮助或建议.非常感谢.

javascript reactjs react-native

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

测试该函数是否使用Jasmine在ES6构造函数中执行

我在JSFiddle上创建了一个简单的例子来测试我在项目中遇到的问题:

describe('testing es6 and jasmine', function() {
  describe('let', () => {
    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let
    it('is es6 works', function() {
      class Test {
        constructor() {
          var x = this.sum(1, 1);
        }
        sum(a, b) {
          return a + b;
        }
      }
      var test = new Test();
      spyOn(test, 'sum').and.callThrough();
      expect(test.sum).toBeDefined();
      expect(test.constructor).toBeDefined();
      expect(test.sum).toHaveBeenCalled();
    });

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

问题是我在构造函数中执行一个方法,我想检查它是否已执行.为什么在我的例子中Jasmine告诉它不是?

javascript jasmine ecmascript-6

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

filename.js和./filename.js之间的JS区别

有人可以帮我理解,filename.js./filename.js之间有什么区别

(注意:虽然我们包含在html或任何js文件中)

html javascript

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

app.get在Node/Express中返回undefined

我在app.js中使用express我设置了这样的东西

var express = require('express');
var app = express();
app.set('myVar', 'hello');
Run Code Online (Sandbox Code Playgroud)

然后在我的控制器中我想获得价值.我做

var express = require('express');
var app = express();
console.log(app.get('myVar')) // undefineded 
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

javascript node.js

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

如何用另一个函数包装每个快速路由处理程序

基本上我想要而不是这个......

app.get(routes.test, function(req, res, next){
  actualRouteHandler(req, res, next) // Always returns a promise or throws.
    .catch(function(err) {
      next(err);
    });
});
Run Code Online (Sandbox Code Playgroud)

拥有这个: app.get(routes.test, catchWrap(actualRouteHandler));

或类似的东西,我已经尝试搞乱fn.apply和东西,但我找不到一种方法来传递actualRouteHandler正确的参数(req,res,next),仍然有功能.我需要返回一个函数或类似的东西吗?

编辑:我认为可能有库这样做但我们无法访问这段代码中的实际快速应用程序.

javascript function apply node.js express

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

重新连接和导入其他模块

我正在尝试使用重新连接外部模块在模块之间进行一些测试。

实际上,我有这两个模块:

import callbackRender from './callbackRender'
import { HttpRequest } from 'default-http'

export default (injector, route) => {
  return (request, response) => {
    const ctrl = injector.get(route.controller)
    const result = ctrl[route.controllerMethod](new HttpRequest())
    if (result.then) {
      return result.then(res => callbackRender(res, response))
    } else {
      callbackRender(result, response)
    }
  }
}


export default (httpResponse, response) => {
  if (httpResponse.content.content) response.send(httpResponse.content.content)
  else response.render(httpResponse.content.page)
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试像下面这样测试它:

import chai from 'chai'
import { HttpRequest, HttpResponse } from 'default-http'
import UserControllerMock from './UserControllerMock'
import expressKonnector from '../app/expressKonnector' …
Run Code Online (Sandbox Code Playgroud)

javascript testing mocha.js node.js chai

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

webpack-dev-server 动态端口

是否可以为 webpack-dev-server 找到一个未使用的端口?我当前的配置看起来像:

devServer: {
    historyApiFallback: true,
    inline: true,
    host: '0.0.0.0',
    port: 3000,
    contentBase: helpers.root('public'),
    stats: 'minimal'
}
Run Code Online (Sandbox Code Playgroud)

javascript webpack webpack-dev-server

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

使异步/等待与Superagent一起工作

我在这里的语法中缺少某些内容,但不确定是什么:

我正在努力解决这个问题。但是我明白了expected undefined to equal 'pXVCJ9.eyJpYXQ'

Test.js

describe('User API', () => {
    let email, password, requestBody

    beforeEach(() => {
      email = 'someperson@gmail.com'
      password = 'password'
      requestBody = {
        session: '05833a20-4035',
        token: 'pXVCJ9.eyJpYXQ' }

      nock('https://someurl/')
        .get('users/sessions')
        .reply(200, requestBody)
    })

    it('returns user session for login', async () => {
        const data = await UserApi.login(email, password)

        expect(data.token).to.equal(requestBody.token)
        expect(data.session).to.equal(requestBody.session)
    })
})
Run Code Online (Sandbox Code Playgroud)

UserApi.js

import request from 'superagent'

export const endpoint = 'https://someurl/'

const login = (email, password) => async () => {
  try { …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous async-await superagent ecmascript-6

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