mongooseããŒãžã§ã³4.8.0ããã³4.8.1ïŒããŒãããŒãžã§ã³ã¯6.9.5ãMongoDBããŒãžã§ã³ã¯3.2.11ïŒã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®èµ·ååŸã«ããã¥ã¡ã³ãã®ä¿åãæåã«è¡ããããšãã«ã次ã®èŠåãçæãããŸãïŒèŠåã¯æ¬¡ã®å Žåã«ã¯è¡šç€ºãããŸããïŒãã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã«æåããåãã³ãŒããå®è¡ãããŸãããã¢ããªã±ãŒã·ã§ã³ãéããŠåèµ·åãããšãã¢ããªã±ãŒã·ã§ã³ã®éå§åŸã«åããŠããã¥ã¡ã³ãã®ä¿åãè¡ããããšãã«èŠåãçæãããŸãïŒïŒ
éæšå¥šèŠåïŒMongooseïŒmpromiseïŒmongooseã®ããã©ã«ãã®promiseã©ã€ãã©ãªïŒã¯éæšå¥šã§ãã代ããã«ç¬èªã®promiseã©ã€ãã©ãªããã©ã°ã€ã³ããŠãã ããïŒ
ãã®åé¡ã¯ããã³ã°ãŒã¹ããŒãžã§ã³4.7.9以åã§ãŸã£ããåãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã䜿çšããå Žåã«ã¯çºçããŸããã
ãã³ã°ãŒã¹æ¥ç¶ãèšå®ããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
`// Set up mongoose and DB connection
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
mongoose.connect('mongodb://localhost:27017/basedir', {server: { poolSize: 5 }});`
å®éã«ãšã©ãŒãçºçããã³ãŒãã貌ãä»ããããšã¯ã§ããŸããïŒ ãã®ã³ãŒãã¯ãpromiseããŸã 䜿çšããŠããªãããã䜿çšãããŸããïŒæçš¿ããæ¥ç¶ã¹ãããããèŠåãçæãããšèšã£ãŠããå Žåãé€ããŸããïŒïŒ
ããããæ¥ç¶ã¹ããããã¯èŠåãçæããŸããã 次ã®newusersaveã¹ããããã¯èŠåãçæããã³ãŒãã§ãããã¢ããªã±ãŒã·ã§ã³ã®éå§åŸã«ã³ãŒããåããŠå®è¡ããããšãã®ã¿ã§ãïŒããã§ããmongooseããŒãžã§ã³4.7.9以åã§ã¯èŠåã¯çºçããŸããïŒã
` var curDate = new Date();
var newuser = new user(
{
"userName": userName,
"hashed_password": hashed_password,
"emailReg": false,
"email": "~",
"firstName": "",
"lastName": "",
"address.streetAddress": "",
"address.city": "",
"address.state": "",
"address.postalCode": "",
"phoneNumbers": [],
"accessLevel": 2,
"active": true,
"trialStartDate": curDate,
"maxStorageByteLimit": constants.maxStorageBytesPerUser,
"signUpDate": curDate,
"passwordResetDate": curDate,
"salt": temp,
"storageBytesUsed": 0
});
if (phoneNumberValid != false)
{
newuser.phoneNumbers.push({
"type": "mobile",
"number": contactPhoneNumber,
"primary": true
});
}
wlogger.crit("Create new user by UserName: " + userName);
newuser.save(function (err)
{
if (err)
{
wlogger.error(err + " - when saving user "
+ " creation by UserName: " + userName);
callback({
"response": false,
"res": "User creation failed. "
+ " Please try again or contact us at [email protected]"
});
}
else
{
wlogger.crit("Saved new user info for UserName: "
+ userName);
return callback({
"response": true,
"res": "Created user by User Name " + userName,
"user_id": newuser._id,
"last_modified_date": curDate
});
}
})`
ãŠãŒã¶ãŒã¹ããŒãã¯æ¬¡ã®ãšããã§ãã
`var userSchema = mongoose.Schema({
token : String,
email: String,
userName: String,
deviceId: String,
devicePhoneNumber: String,
hashed_password: String,
hashed_admin_code: String,
maxStorageByteLimit: { type: Number, default: 1073741824 },
accessLevel: { type: Number, default: 2 },
lastAccessType: Number,
storageBytesUsed: { type: Number, default: 0 },
totalStorageBytesUsed: { type: Number, default: 0 },
deletedStorageBytesUsed: { type: Number, default: 0 },
salt : String,
salt1 : String,
temp_str: String,
syncInProcess: { type: Boolean, default: false },
syncStartDate: { type: Date, default: Date.now },
syncVersion : { type: Number, default: 0 },
active: { type: Boolean, default: false },
disabled: { type: Boolean, default: false },
emailReg: { type: Boolean, default: false },
regPending: { type: Boolean, default: false },
emailChangePending: { type: Boolean, default: false },
regCodeSendCount: { type: Number, default: 0 },
trialStartDate: Date,
signUpDate: Date,
passwordResetDate: Date,
lastLoginDate: Date,
lastModifiedDate: Date,
curLoginDate: Date,
apnDeviceTokens: [ String ],
curSessionIds: [ String ],
curIpAddr: { ipType: String,
upper64: Schema.Types.Long,
lower64: Schema.Types.Long },
firstName: String,
lastName: String,
address: { streetAddress: String,
city: String,
state: String, postalCode: String },
phoneNumbers: [ phoneNumbersSchema ],
categories: [ categoriesSchema ],
providerCustomers: [ customerSchema ],
serviceProviders: [ providerSchema ],
ipAddrs: [ ipAddrSchema ],
recentUploads: [ recentUploadSchema ],
recentUploadsGizmo: [ recentUploadSchema ],
recentUploadsLife: [ recentUploadSchema ],
recentUploadsVehicle: [ recentUploadSchema ],
recentUploadsMisc: [ recentUploadSchema ],
recentViews: [ recentViewsSchema ],
recentAdds: [ recentAddsSchema ],
recentAddedFiles: [ recentAddedFilesSchema ],
locations: [ locationSchema ],
inMessages: [ inMessageSchema],
outMessages: [ outMessageSchema ]
});`
mongoosev4.8.1ãšnode.jsv7.5.0ã§ãåãåé¡ã確èªã§ããŸãã
mongoose.Promise = global.Promise;
mongoose.connect(db.mongodb.uri, db.mongodb.options);
DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
@ stevenelson74708ã¹ããããã«æè¬ããŸãããã¹ããŒãèªäœã¯ããããåé¡ã§ã¯ãããŸããã ç§ããã£ãšæ¢ããŠããã®ã¯ãæ¥ç¶ãéããããšã/ãã³ã°ãŒã¹ã®Promiseã³ã³ã¹ãã©ã¯ã¿ãŒãèšå®ããããšããšæ¯èŒããŠã¹ããŒããã€ã³ããŒããããŠäœ¿çšãããæ¹æ³ã§ãã
ã¹ããŒãã¯ã次ã®ããã«å®£èšãããŠããã¹ããŒããã¡ã€ã«ãããšã¯ã¹ããŒããããŸãã
`module.exports = mongoose.model('users', userSchema); `
ã¹ããŒãã¯ãnewuser.saveã次ã®ããã«åŒã³åºããããšãã«äœ¿çšããããã¡ã€ã«ã«ã€ã³ããŒããããŸãã
`var user = require('config/models/users');`
ç§ã®æåã®æçš¿ã«ç€ºãããŠããæ¥ç¶ã¹ããããïŒæ¥ç¶ãéããŠããŠããã³ã°ãŒã¹ã®Promiseã³ã³ã¹ãã©ã¯ã¿ãŒãèšå®ãããŠããïŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã®åæåæã«å®è¡ãããapp.jsãã¡ã€ã«ã§çºçããŸãã
2çªç®ã®æçš¿ã«ç€ºãããŠããnewuser.saveã¹ããããã¯ããŠãŒã¶ãŒã¹ããŒããã€ã³ããŒãããããã¡ã€ã«ããå®è¡ãããnewuser.saveã¯ããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ããŠç¹å®ã®ã«ãŒããå®è¡ãããšãã«å®è¡ãããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®åæåã®ããªãåŸã®ããšã§ããå®äºããŸããã
èŠåã¯ãåãnewuser.saveã³ãŒããèµ·ååŸã«äœåºŠãå®è¡ããããšããŠããã¢ããªã±ãŒã·ã§ã³ã®èµ·ååŸã«newuser.saveã³ãŒããåããŠå®è¡ããããšãã«ã®ã¿çºçããmongooseããŒãžã§ã³4.7.9以åã§ã¯çºçããŠããªãããã§ãã
@ stevenelson74708ã¢ããªã®èµ·åã§åœ¹å²ãæãããã¹ãŠã®ã³ã³ããŒãã³ãã確èªããå¿
èŠããããŸãã æè¿ãå€ãã®äººãããã«é¢ããŠåé¡ãéããŠããŸãããã¹ãŠã®åé¡ã¯ãpromiseã³ã³ã¹ãã©ã¯ã¿ãŒã®äžé©åãªèšå®ã«èµ·å ããŠããããã mongoose.Promise
ãèšå®ããé åºã§äœãééã£ãããšãããŠãããšæããŸãã
ç§ãããªãã®ã³ãŒããèŠãããšãã§ããæ¹æ³ã¯ãããŸããïŒ
以äžã¯ãmongoose.Promiseã®èšå®ãå«ããmongooseæ§æã«é¢é£ããapp.jsåæåã®ãã¹ãŠã®ã³ãŒãïŒæ£ç¢ºãªé åºïŒã§ãã åæåã³ãŒãã®å®è¡æã«èŠåã¯çºçããŸããã ãã®èŠåã¯ãã¢ããªã±ãŒã·ã§ã³ãåæåãããåŸãnewuser.saveã³ãŒãïŒä»¥åã®æçš¿ã«è¡šç€ºïŒãåããŠå®è¡ããããšãã«ã®ã¿çºçããŸãã èŠåãçºçãããªãä¿ååã«å®è¡ãããfindOneAndUpdateåŒã³åºãããããããèŠåãçºçãããã®ã¯ä¿åæ©èœã®ã¿ã§ããããã«èŠããŸãã
ãã³ã°ãŒã¹ã®æ§æã¯ãåæåã§æåã«çºçãããã®ã®1ã€ã§ãã ãã³ã°ãŒã¹ã®æ§æã¯ãcreateServeræ©èœã®åŸãªã©ãåæåã®åŸåã§è¡ãå¿ èŠããããŸããïŒ
ç¹°ãè¿ãã«ãªããŸãããèŠåã¯ãã³ã°ãŒã¹ããŒãžã§ã³4.7.9以åã§ã¯çºçããªãããã§ãã
`// Set up mongoose and DB connection
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
mongoose.connect('mongodb://localhost:27017/basedir', {server: { poolSize: 5 }});
var conn = mongoose.connection;
conn.once('open', function ()
{
wlogger.info("Mongoose connection opened on process " + process.pid);
});`
ããããæ§æãæåã«è¡ãããšãã§ããŸãã ãã®ãã¡ã€ã«ã¯ã¢ããªã®ãšã³ããªãã€ã³ãã§ããããããšãããã«å è¡ãããã¡ã€ã«ããããŸããïŒ
app.jsãã¡ã€ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãšã³ããªãã€ã³ãã§ãã ã¢ããªã±ãŒã·ã§ã³ã¯ãã³ãã³ãã©ã€ã³ã§nodeapp.jsãšå ¥åããããšã§åŒã³åºãããšãã§ããŸãã
ãã³ã°ãŒã¹4.8.1ãšããŒã7.5.0ã§ãåãåé¡ããããŸãã ç§ãTypescriptã䜿çšããŠãããçŽæã®ããã«Bluebirdããã©ã°ã€ã³ããããšããŠããŸãã ãã®ã³ãŒããè¿œå ãããšãèŠåãæ¶ããããšãããããŸããã
`import * as mongoose from 'mongoose';
import * as bluebird from 'bluebird';
(<any>mongoose).Promise = bluebird;`
'mongoose'ããäœããã€ã³ããŒããããã¹ãŠã®ãã¡ã€ã«ã ãããã£ãŠããšã³ããªãã€ã³ããã¡ã€ã«ã®ã¿ã§ã¯ãªãããã¹ãŠã®ã¢ãã«ãã¡ã€ã«ïŒã¹ããŒããå®çŸ©ãããã¡ã€ã«ïŒã§ãããè¡ãå¿ èŠããããŸãã
// Set up mongoose and DB connection
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
mongoose.connect('mongodb://localhost:27017/basedir', {server: { poolSize: 5 }});
var conn = mongoose.connection;
conn.once('open', function ()
{
console.log('test');
});
ãã®èŠåã¯åºåãããªãã®ã§ãä»ã«äœãããããŸãã
@vladimirdjurdjevicããã¯ã mongooseasyncopã䜿çšããŠããããšãæå³ããŸãã ç§ã¯TSã䜿ã£ãŠããªãã®ã§ããããTSãšé¢ä¿ããããã©ããã¯ããããŸããã
ã¢ããªã±ãŒã·ã§ã³ã®ãšã³ããªãã€ã³ãã§ããapp.jsãã¡ã€ã«ã§äžèšã®ããã«promiselibãèšå®ããæåã®newuser.saveãå®è¡ããããšïŒpromise libãèšå®ãããŠãããã£ãšåŸïŒãäžèšã®ããã«èŠåãçºçããŸãã newuser.saveã¯ãæåã«çºçãããã³ã°ãŒã¹éåæopã§ãããæ¥ç¶ã«libãèšå®ãããåŸã«çºçããŸãã
mongooseæ¥ç¶ãæ§æãããŠãããšãã«promiselibã1åã ãèšå®ããã®ã§ã¯ãªããmongooseéåæé¢æ°ã«ã¢ã¯ã»ã¹ããåãã¡ã€ã«ã«promise libãèšå®ããå¿ èŠããããŸããïŒ
@ stevenelson74708ç§ãåãåé¡ãæ±ããŠããŸããã ã¢ããªã±ãŒã·ã§ã³ã®ãšã³ããªãã€ã³ãã§mongoose.Promise = global.Promise
ããŠè§£æ±ºãããšæããŸããã ãã³ã°ãŒã¹ã®çŽæã«ã¢ã¯ã»ã¹ãããã¹ãŠã®ãã¡ã€ã«ã§ãããå¿
èŠãªããã§ãã ããªãè¿·æã§ãã ãã³ã°ãŒã¹ã®æ§æãå¥ã®ãã¡ã€ã«ã«èšå®ãããšã¯ã¹ããŒãããŠãå¿
èŠã«å¿ããŠã€ã³ããŒãããã ãã§ãã
app.jsãã¡ã€ã«ã§promiseãèšå®ããŸããããæè¿ããã®èŠåã衚瀺ãããããšã«æ°ä»ããŸããã ãã€ãã£ããšãã«ãŒããŒãã®äž¡æ¹ã䜿çšããŠã¿ãŸããããåãçµæã«ãªããŸããã
// FILE: app.js
import bluebird from 'bluebird';
import mongoose from 'mongoose';
// use bluebird as default promise library
mongoose.Promise = bluebird;
ãã³ã°ãŒã¹ãããã€ãã®ã¢ãã«ã«ã€ã³ããŒãããã¹ããŒãã¡ãœããã§äœ¿çšããŠããŸãã ãã³ã°ãŒã¹ãç¬èªã«ã€ã³ããŒãããpromiseã©ã€ãã©ãªãeverãã¡ã€ã«ã«èšå®ããããšã§åé¡ã解決ããŸããïŒä»¥äžã®ã¹ããããã®TODOãåç §ïŒã åæ§ã®ã³ãŒãæ§é ã§æ°ãæåã«èŠåã衚瀺ãããã®ãèŠããŠããŸããã
// FILE: SessionModel.js
import bluebird from 'bluebird';
import mongoose from 'mongoose';
// TODO: remove this redundant bit of code
// use bluebird as default promise library
mongoose.Promise = bluebird;
SessionSchema.methods.getUser = function(callback) {
return mongoose.model('User').findById(this.user, callback);
};
@mcfarljw次ã®ãããªããšãããã»ããããã§ãïŒ
// config.js
const bluebird = require('bluebird');
const mongoose = require('mongoose');
mongoose.Promise = bluebird;
mongoose.connect('mongodb://localhost:27017/myApp)
module.exports = { mongoose }
// SessionModel.js
const { mongoose } = require('./config')
SessionSchema.methods.getUser = function(callback) {
return mongoose.model('User').findById(this.user, callback);
};
ããããã°ããmongoose.Promise = bluebirdããäœåºŠãæžãå¿ èŠããªããªããŸã:)
ç§ã®ç¶æ³ã§ã¯ã .then()
æ§æã䜿çšããŠãµãããã¥ã¡ã³ããæäœãããšãéæšå¥šã®èŠåã衚瀺ãããŠããŸãããã芪ããã¥ã¡ã³ãã¯æäœããŠããŸããã§ããã ãã®ãããææèŠåãåºãŠãåããã¥ã¡ã³ãã®åŠçã«æ§æäžã®åé¡ããããšæããŸããããå®éã«ã¯ãä»ã®äººãäžèšã§ã¢ããã€ã¹ããããã«ãã¢ãã«ãã¡ã€ã«ã«promiseè¡ããããŸããã§ããã
ã¯ããmongoose.modelããšã¯ã¹ããŒããããã¹ããŒããã¡ã€ã«ã§mongoose.Promiseãèšå®ãããšãmongooseããŒãžã§ã³4.8以éã®èŠåãåé€ãããããã§ãã
ãããããªãèªèº«ã®å€ç°ãããšã¯ã¹ããŒããåé¡ãåé¿ããã®ã§ããã³ã°ãŒã¹ã®ã·ã³ã°ã«ãã³ãåããŸãããããã¯ç¢ºãã«å°ãããã¯ã§ãã
ãã®æç¹ã§ãèŠåãåé¿ããããã®ãé©åãªããã³ã°ãŒã¹ã®ã»ããã¢ãã/æ§æãæ£ç¢ºã«äœã§ãããã¯ç§ã«ã¯ããããŸããã ãã®èŠåã¯çŸåšã®ãã³ã°ãŒã¹ã®ããŒãžã§ã³ã®åé¡ã§ããããããšãäžé©åãªãã³ã°ãŒã¹ã®èšå®ã瀺ããŠããŸããïŒ èŠåãé²ãæšå¥šããããã³ã°ãŒã¹ã®èšå®ã¯ãããŸããïŒ ç¹°ãè¿ããŸããããã®èŠåã¯ãã³ã°ãŒã¹ããŒãžã§ã³4.8.0ã§ã®ã¿çºçãå§ããŸãã
ã°ããŒãã«ãã³ã°ãŒã¹ã®èšå®ã«ã€ããŠãåãåé¡ããããŸãã
ãã¬ãŒã¹ããŠã³ããŸãããbluebirdãpromise_providerã«é©åã«èšå®ã§ããŸãããpromiseãåãæ»ãããšãããšãES6ãè¿ãããŸãã
ç§ã¯ã¡ããã©éãæããŠè¿œå ããŸãã
mongoose.Promise = global.Promise
ããã䜿çšãããã¹ãŠã®ãœãŒã¹ãã¡ã€ã«ã§ãã³ã°ãŒã¹ã®require / importã®çŽåŸã«ãããã¯ããéãã§ãããèããããšãæéãããŸããããããå®å šã«ä¿®æ£ãããŸããã ã ãããå®éã«ã¯æ倧ã®ååŒã§ã¯ãããŸããã
ããã¯ãã©ã®ããã«äœæ¥ãèŠæ±ããã€ã³ããŒããããã«ã€ããŠã®ç§ã®ç¢ºãã«éãããç¥èã«ææŠããŸãã äœåºŠå¿ èŠã«ãªã£ãŠãåžžã«åãã€ã³ã¹ã¿ã³ã¹ãåŸããããšããå°è±¡ãåããã®ã§ãäžåºŠçŽæãèšå®ããã°ååã ãšæããŸãã ã§ããããããã¯å°ãçŽæã«åããŸãã
ããã«ã¡ã¯
åé¡ãåŒãèµ·ãããµã³ãã«ã³ãŒããããã€ããããŸã
import mongoose from 'mongoose';
mongoose.Promise = Promise;
import Test from './test.model';
mongoose.connect(uri, options);
mongoose.connection.on('error', err => console.error(`MongoDB connection error: ${err}`));
Test.create({ name: 'Hi'})
.then(() => Test.findOne({}))
.then(res => res.save())
.then(() => console.log('Done'));
ïŒtest.modelã¯ãååã«1ã€ã®ãã£ãŒã«ããããåçŽãªã¢ãã«ã§ãïŒ
äœããã®çç±ã§ã res.save();
å®è¡ãããšæåã«åé¡ãçºçããŸãã ããããªããã°ããã¹ãŠãéåžžã©ããæ©èœããŸãã
ãã®åé¡ã¯ãã³ãŒãããã©ã³ã¹ãã€ã«ãããšãã«ããã«ãé åºãå€æŽããããšã«èµ·å ãããšæããŸãã ããã«ãçºçãããšããã¹ãŠã®ã€ã³ããŒããäžçªäžã«ç§»åããŸãã ãããã£ãŠãç§ã®äŸã§test.modelãã€ã³ããŒãããŠããPromiseã©ã€ãã©ãªã¯ãŸã mpromiseã«å²ãåœãŠãããŠããŸãã
Node.js6.10.0ãšMongoose4.8.5ã䜿çšããŠããŸããããã®åé¡ãçºçããŸããã
ãŠãŒã¶ãŒãªããžã§ã¯ããä¿åããŸãïŒ
var newUser = User({
login : 'john',
password : 'secret',
firstname : 'John',
lastname : 'Doe',
avatar : 'avatar.png'
});
newUser.save(function(err){
if(err) throw err;
console.log('User created !');
});
ãããŠãç§ã¯åããšã©ãŒããããŸãã ç§ã¯ãã®æ¹æ³ãè©ŠããŸããïŒ
mongoose.Promise = require('bluebird');
mongoose.connect(conf.dbpath);
ãããŠãã®ããã«ïŒ
mongoose.Promise = global.Promise;
mongoose.connect(conf.dbpath);
ããããç§ã¯åã³éæšå¥šã®èŠåãæã£ãŠããŸãã ã©ãããã°ãããä¿®æ£ã§ããŸããïŒ
éæšå¥šã®èŠåãä¿®æ£ããæ¹æ³ïŒ
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
var schema = new mongoose.Schema({
// definition
}, {
// options
});
module.exports = mongoose.model('foobar', schema);
ããããããã¢ãã«ã«å ¥ããã°ããŸããããŸãã ãããã£ãŠãmongoose.Promiseãåã¢ãã«å ã§åæåããå¿ èŠããããŸãã
@ stevenelson74708ã¯ã At this point it's unclear to me as to exactly what the "proper" mongoose setup/configuration to avoid the warning is.
ãšèšããšãã«åªããç¹ããããšæããŸã
ã¯ããä¿®æ£ã¯ãã¹ãŠã®ãã³ã°ãŒã¹ã¢ãã«ãã¡ã€ã«ã«æ»ã£ãŠã€ã³ããŒãåŸã«mongoose.Promise = global.Promise
ãè¿œå ããããšã§ããããã®åé¡ã¯æè¿çºçããã°ãããªã®ã§ãæå³ã«ã€ããŠããå
·äœçãªåçãåŸããšããã§ããããŸãã¯ãã®èåŸã«ããåå ã çŸæç¹ã§ã¯ããã³ã°ãŒã¹ãããã«ããŸãã¯ãã®2ã€ã®çµã¿åãããåå ã®åé¡ã§ãããã©ããã¯ããããŸããã
ããããïŒ5030ã®è€è£œã§ãã > = 4.9.1ã«ã¢ããã°ã¬ãŒãããŠã¿ãŠãã ããã
èšé²ã®ããã«ã @ bricssãœãªã¥ãŒã·ã§ã³ã¯ç§ã«ãšã£ãŠããªãããŸããããŸãã:)
æåã®è§£æ±ºçã¯@ steve-p-comããæ¥ãŠããŸãã @bricssããã§ã¯ãããŸããã
@ vkarpov154.9.3ãšåãèŠåã
@stillesjoããã¯babelã§ã¯äœããããŸããã èŠåã¯ãããŒã7.8.0ã®Babelããªãnativã§ãçºçããŸãã
ããŒãžã§ã³4.9.3以éãèŠåã¯ãããŸããð·
ãã¹ãŠã®ã¢ãã«ã«mongoose.Promise = global.Promise;
ãèšå®ãããšããŠããããã¯_çæ³çãª_ä¿®æ£ã§ã¯ãªããšæããŸããïŒ global.Promise
ãããã©ã«ããšããŠäœ¿çšããå¿
èŠã«å¿ããŠãŠãŒã¶ãŒãå€æŽã§ããããã«ããªãã®ã¯ãªãã§ããïŒ
ã¢ãã«ã®ãŠããããã¹ãã ããŒã«ã«ãŸãã¯CIã§ãã¹ããå®è¡ãããšãã«èŠåã衚瀺ãããªãããã«ããããå«ããå¿
èŠããããŸãã
ããŒãv7.10.0
"mongoose": "4.10.4"
ããŠããŸã
@lesterzone
ããã«DRYãœãªã¥ãŒã·ã§ã³ãè¿œå ããã«ã¯ãåã¢ãã«å ã§èšå®ããã®ã§ã¯ãªããããŒã¿ããŒã¹ãšã®æ¥ç¶ãåæåããå Žæã«èšå®ããŸãã
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://...');
ããŸãããããã§ã
ããããããã¯å¿ ããããã¹ãŠã®äººã«ãšã£ãŠããŸããããšã¯éããŸããã ã³ãŒãæ§é ã«ãã£ãŠç°ãªããŸãã ããšãã°ãæ¥ç¶ã³ãŒããå«ããã¡ã€ã«ãåå¥ã®ãœãŒã¹ãã¡ã€ã«ããã®ã¢ãã«ãå¿ èŠãšããå Žåãrequireãæ©èœããæ¹æ³ã¯ãæ¥ç¶ã³ãŒããå«ããã¡ã€ã«ã«ã°ããŒãã«ãããã¹ãèšå®ãããåã«ãããã®ãœãŒã¹ãã¡ã€ã«ãããŒããããããšãæå³ããŸãã ãããã®ã¢ãã«ã¯ãåŒãç¶ãpromiseã®ããã©ã«ãå€ã䜿çšããŸãã å®å šãªã«ãŒãã¯ããã³ã°ãŒã¹ãå¿ èŠãšãããã¹ãŠã®ãœãŒã¹ãã¡ã€ã«ã«ã°ããŒãã«ãããã¹ãèšå®ããããšã§ãã
ããã¯ç§ã®ããã«åããŸã
ãã
'ãã³ã°ãŒã¹'ãããã³ã°ãŒã¹ãã€ã³ããŒãããŸãã
'./config'ããæ§æãã€ã³ããŒãããŸãã
'bluebird'ããbluebirdãã€ã³ããŒãããŸãã
ããã©ã«ãã®ã³ãŒã«ããã¯ããšã¯ã¹ããŒã=> {
mongoose.Promise = bluebird;
//æ§æãã¡ã€ã«å
ã®ããŒã¿ããŒã¹ã®ã€ã³ã¹ã¿ã³ã¹ããããŒã¿ããŒã¹ã«æ¥ç¶ããŸã
let db = mongoose.connectïŒconfig.mongoUrlã{useMongoClientïŒtrue}ïŒ;
ã³ãŒã«ããã¯ïŒdbïŒ;
}
ãã
ãããç§ããã£ãŠããæ¹æ³ã§ãã
var colors = require('colors');
var mongo = require('mongodb');
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
var db = mongoose.connection;
mongoose.connect('mongodb://localhost:27017/db', { useMongoClient: true })
.then(function(){
console.log(" Connected to dbName ".green);
}).catch(err => console.error(err));
.saveã§ã¯ãªãmongooseã«ä»å±ãã.createé¢æ°ã䜿çšããå¿
èŠããããŸãã
ç§ã¯ç§ã®ãã®ãå€æŽããŸããããããŠããã¯åé¡ãä¿®æ£ããŸã
ç§ã¯4.13.9ã䜿çšããŠããŸãããããã¯ãŸã ååšããŠããŸãã @ Gilbert136ãœãªã¥ãŒã·ã§ã³ã¯ãããä¿®æ£ããŸãããå¥åŠãªããšã«ç§ã¯
æãåèã«ãªãã³ã¡ã³ã
éæšå¥šã®èŠåãä¿®æ£ããæ¹æ³ïŒ