我有一个产品模型,它有很多领域。其中一些专用于前端应用程序,例如:
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 模型上有额外的数据。
我无法分辨为什么在这些情况下不验证唯一属性
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) 我想在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运行代码,但有相同的错误.
我需要帮助或建议.非常感谢.
我在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告诉它不是?
有人可以帮我理解,filename.js和./filename.js之间有什么区别
(注意:虽然我们包含在html或任何js文件中)
我在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)
知道为什么吗?
基本上我想要而不是这个......
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),仍然有功能.我需要返回一个函数或类似的东西吗?
编辑:我认为可能有库这样做但我们无法访问这段代码中的实际快速应用程序.
我正在尝试使用重新连接外部模块在模块之间进行一些测试。
实际上,我有这两个模块:
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) 是否可以为 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) 我在这里的语法中缺少某些内容,但不确定是什么:
我正在努力解决这个问题。但是我明白了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 ×8
node.js ×5
ecmascript-6 ×2
express ×2
mongodb ×2
mongoose ×2
apply ×1
async-await ×1
asynchronous ×1
chai ×1
function ×1
html ×1
jasmine ×1
mocha.js ×1
react-native ×1
reactjs ×1
superagent ×1
testing ×1
webpack ×1