Я пытался реорганизовать здесь код из mongoose о том, как использовать его с лямбдой, но с треском провалился. Я думаю, что это связано с тем, как неправильно я использую async / await. Исходя из журналов, объект conn не инициализируется должным образом. В любом случае, вот мои коды.
db.js
const mongoose = require('mongoose');
const uri = 'mymongoURL';
module.exports.initDb = async function() {
return mongoose.createConnection(uri, {
bufferCommands: false, // Disable mongoose buffering
bufferMaxEntries: 0 // and MongoDB driver buffering
});
}
index.js
const mongoose = require('mongoose');
let conn = null;
const db = require('./db');
exports.handler = async (event,context,callback) => {
context.callbackWaitsForEmptyEventLoop = false;
if (conn == null) {
conn = await db.initDb();
console.log("conn is still null: "+ conn == null);
conn.model('Foo', new mongoose.Schema({
promo: {
type: String,
}
}, { collection: 'foo', timestamps: { createdAt: 'created_at', updatedAt: 'updated_at' } } ));
conn.model('Test', new mongoose.Schema({ name: String }));
}
const FM = conn.model('Foo');
let fooObj = new FM({promo:"Zimmer!"});
fooObj.save(function(err, response) {
console.log(err);
});
const M = conn.model('Test');
let zim = new M({name:"Zim!"});
zim.save(function (err, result){
});
};
Заранее извиняюсь за неправильное использование async / await.