Tag: mongoose ecmascript 6

ES6导入内部导出默认

我正在将NodeJS应用程序的整个代码从ES5迁移到ES6 / 7。 谈到import时我遇到了麻烦: 首先,我明白,导入直接调用文件。 例如 : import moduleTest from './moduleTest'; 这段代码将进入moduleTest.js并执行它。 所以,真正的问题是关于这个代码: import mongoose from 'mongoose'; import autopopulate from 'mongoose-autopopulate'; import dp from 'mongoose-deep-populate'; import { someUtils } from '../utils'; const types = mongoose.Schema.Types; const deepPopulate = dp(mongoose); export default () => { // DOES SOMETHING USING types AND deepPopulate return someThing; }; export […]

es6mongoose嵌套findById诺言

我正在build立一个使用节点快速mongoose / mongo等宁静api。我试图输出一个特定的用户正在跟踪的用户数组。 这是架构。 var UserSchema = new mongoose.Schema({ username: {type: String, lowercase: true, unique: true, required: [true, "can't be blank"], match: [/^[a-zA-Z0-9]+$/, 'is invalid'], index: true}, email: {type: String, lowercase: true, unique: true, required: [true, "can't be blank"], match: [/\S+@\S+\.\S+/, 'is invalid'], index: true}, bio: String, image: String, following: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' […]

在一系列MongoDB插入中,我想引用先前插入的项目的objectId

我想插入一系列文档到MongoDB中,每个文档必须引用先前插入的条目。 认为多米诺是下一个下降的项目会知道它被撞倒的项目。 说,我插入三个多米诺骨牌到数据库中,我想实现以下结果(插入时由MongoDB生成_id)。 { _id: '1', parentId: null }, { _id: '2', parentId: '1' }, { _id: '3', parentId: '2' }, 我尝试了以下内容: let parentId = null; dominos.map(domino => { domino.parentId = parentId; return storeItem(domino) // calls Model.create and returns _id .then((result) => { parentId = result; // a console.log would print the latest _id }) […]

Javascript的ES6类variables

用Mongoose探索Javascript ES6类,并在访问类variables时遇到困难。 我想在引用在类的构造函数中声明的variables的cursor.on(data)事件中使用this.name 。 我怎样才能做到这一点? 'use strict'; const Mongo = require('../mongo') class Example { constructor() { this.name = 'Test Class'; } export(docId, callback) { console.log('In export' + docId); const cursor = Mongo.findDocById(docId); console.log(this.name); // Prints "Test Class" cursor.on('data', function (document) { console.log(document); console.log(this.name); // Prints "undefined" }); cursor.on('close', function () { Mongo.close(); callback(null, 'Success') }); […]

mongoose – 不能访问对象属性?

我正在尝试访问返回的MongoDB(mongoose)发现的属性。 如果我试图控制login整个对象,我可以看到这一切。 但是,如果我尝试login一个属性,我得到undefined 。 对象在那里! function getAll () { let d = q.defer(); User.find({}, function (err, docs) { if (err) { d.reject(err); } for(let user of docs) { console.log(user); // This works! console.log(user.email); // This returns undefined! } d.resolve(); }); return d.promise; } 任何想法? 我也尝试使用JSON.parse,以防string化(只是为了确保),但事实并非如此。 UPDATE 所以好像我可以使用user._doc.email访问结果。 但是,这是什么原因? 我不记得以前必须这样做。

MongoDB和Mongoose:$callback中的ES6语法问题

我正在使用MongoDB(3.2.10)作为数据库和Mongoose(1.4.X)库的Node.JS(6.6.0)应用程序。 下面的代码应该在MongoDB数据库上执行查询: const JobStat = require('../models/job_stat') const co = require('co') let statService = { getRecentJobsStat () { return co(function* () { // Another async code let result = yield JobStat .$where(function () { let condition = true // I omit full condition since it does not matter here return condition }) .sort({ value: 1 }) […]

为URI(JavaScript / NodeJS)生成唯一的string

我正在写一个网站,我想为每篇文章生成一个随机链接。 我想链接是唯一的。 但是我也想确保我能够拥有10万条具有独特链接的文章。 (我正在使用MongoDB – mongoose)。 示例链接:qw463253qqrASd。 符号最大数量:15。 var PostSchema = new Schema({ title: String, url: {type: String, unique: true, default: (() => { let gen = "", possible = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm0123456789"; range(100).forEach((value, index) => gen += possible.charAt(Math.floor(Math.random() * possible.length))); return gen; })()}, … }); PS:我有一个函数可以产生数组。

mongoosepre保存使用不正确的“this”上下文?

任何人都可以找出我的代码下面有什么问题吗? 从文档中看起来像Mongoose中的.pre('save')方法应该是模型本身,但是在我的代码中, this最终是一个空的对象。 const Mongoose = require('./lib/database').Mongoose; const Bcrypt = require('bcrypt'); const userSchema = new Mongoose.Schema({ email: { type: String, required: true, index: { unique: true } }, password: { type: String, required: true } }); userSchema.pre('save', (next) => { const user = this; Bcrypt.genSalt((err, salt) => { if (err) { return next(err); } Bcrypt.hash(user.password, […]

'这'是未定义的mongoose前保存钩子

我已经为User实体创build了一个Mongoose数据库模式,并且想要在updated_at字段中添加当前date。 我试图使用.pre('save', function() {})callback,但每次我运行它,我得到一个错误消息,告诉我this是未定义的。 我也决定使用ES6,我想这可能是一个原因(一切工作虽然)。 我的mongoose/节点ES6代码如下: import mongoose from 'mongoose' mongoose.connect("mongodb://localhost:27017/database", (err, res) => { if (err) { console.log("ERROR: " + err) } else { console.log("Connected to Mongo successfuly") } }) const userSchema = new mongoose.Schema({ "email": { type: String, required: true, unique: true, trim: true }, "username": { type: String, required: true, unique: true […]

如何在ES6 / ES2015中编写一个Mongoose模型

我想在ES6中写下我的mongoose模型。 基本上尽可能地更换module.exports和其他ES5的东西。 这是我的。 import mongoose from 'mongoose' class Blacklist extends mongoose.Schema { constructor() { super({ type: String, ip: String, details: String, reason: String }) } } export default mongoose.model('Blacklist', Blacklist) 我在控制台中看到这个错误。 if (!('pluralization' in schema.options)) schema.options.pluralization = this.options.pluralization; ^ TypeError: Cannot use 'in' operator to search for 'pluralization' in undefined