У меня следующий код написан файл с именем app.js. MongoDB установлен на 192.168.16.1, который является моим ноутбуком. Когда я запускаю это с помощью команды node app.js, я получаю сообщение «подключен».
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var mongoose = require('mongoose');
var MongoClient = require('mongodb').MongoClient;
// Connect to the db
MongoClient.connect("mongodb://192.168.16.1:27017/angularcrud", function (err, db) {
if(err) {console.log(err); }
else {console.log('connected');}
});
\
У меня на ноутбуке настроена среда OpenWhisk с использованием Vagrant. Если ssh to vagrant и ping на 192.168.16.1, я получаю ответ ping, так что я уверен, что vagrant VM может достичь 192.168.16.1. Я написал следующий код в NodeJS для создания действия OpenWhisk. Я развернул его в openwhisk в виде файла .zip (который также включает в себя папки Node_modules).
function entryPoint(args) {
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var message = "Connection not SET";
var mongoose = require('mongoose');
var MongoClient = require('mongodb').MongoClient;
// Connect to the db
MongoClient.connect("mongodb://193.168.16.1:27017/angularcrud", function (err, db) {
if(err) {return err;}
else {return 'success';}
});
}
module.exports.main = entryPoint;
Если я запускаю приведенный выше код в OpenWhisk, я получаю результат {}. Если я удаляю инструкцию MongoClient.Connect и возвращаю простую строку, я получаю строку, когда вызываю действие. Я уверен, что что-то не так в MongoClient.Connect при запуске на OpenWhisk. Но я действительно застрял, потому что у меня нет ошибки, чтобы сказать мне, что происходит не так.