【发布时间】:2018-08-31 13:45:51
【问题描述】:
我在 Windows 10 上运行用于 OpenWhisk 的 Vagrant VM。我编写了以下代码来将记录写入 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 中处理了与此错误相关的两个线程。两个线程都在谈论返回“承诺”,这是我在代码中编写的。我不知道我还能做什么
【问题讨论】: