У меня Vagrant VM для OpenWhisk, работающая на Windows 10. Я написал следующий код для записи записи в MongoDB.
function entryPoint(args) {
var coindata = {name:args.coindata.name,price: args.coindata.price}
var mongoose = require('mongoose');
var MongoClient = require('mongodb').MongoClient;
var Schema = mongoose.Schema;
var returnMessage;
mongoose.Promise = global.Promise;
return new Promise((resolve, reject) => {
mongoose.connect("mongodb://192.168.16.1:27017/angularcrud").then(
() =>
{
var Coin = new Schema({
name: {
type: String
},
price: {
type: Number
}
});
var coinModel = mongoose.model('Coin', Coin);
var coinObj = new coinModel(coindata);
coinObj.save()
.then(item => {
resolve("Data Saved");;
})
.catch(err => {
reject(err);
});
},
err => { return reject(err)}
);
})
}
module.exports.main = entryPoint;
Я выполнил следующую команду:
wsk action -i invoke testing -br -p coindata "{\"name\": \"coin200\", \"price\": 3 }"
после выполнения вышеупомянутой команды я вижу, что запись добавляется в MongoDb, но в то же время я также вижу следующую ошибку на консоли.
{
"error": "The action did not return a dictionary."
}
Я прошел два потока в stackoverflow, связанных с этой ошибкой. Оба потока говорят о возвращении «обещания», которое я написал в коде. Я понятия не имею, что еще мне делать