Auth0自定义数据库mongodb,注册脚本返回SandboxTimeoutError

时间:2016-11-06 13:26:20

标签: mongodb auth0

我尝试使用我自己的mongo数据库,该数据库是在mlab {{}}}中为用户管理创建的。这是他们提供的模板。

function create (user, callback) {
  mongo('mongodb://user:pass@mymongoserver.com/my-db', function (db) {
    var users = db.collection('users');

    users.findOne({ email: user.email }, function (err, withSameMail) {

      if (err) return callback(err);
      if (withSameMail) return callback(new Error('the user already exists'));

      bcrypt.hashSync(user.password, 10, function (err, hash) {
        if (err) { return callback(err); }
        user.password = hash;
        users.insert(user, function (err, inserted) {
          if (err) return callback(err);
          callback(null);
        });
      });
    });
  });
}

更改连接URI后,我试图"创建"用户通过脚本提供电子邮件和密码。我看到以下错误:

[SandboxTimeoutError] Script execution did not complete within 20 seconds. Are you calling the callback function?

我按照他们提供的调试脚本。这是日志:

$ wt logs -p "myservice-eu-logs"
[12:35:27.137Z]  INFO wt: connected to streaming logs (container=myservice)
[12:35:29.993Z]  INFO wt: new webtask request 1478435731301.992259
[12:35:30.047Z]  INFO wt: { [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
[12:35:30.047Z]  INFO wt: js-bson: Failed to load c++ bson extension, using pure JS version
[12:36:05.080Z]  INFO wt: finished webtask request 1478435731301.992259 with HTTP 500 in 35096ms

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

实际上,<script type="text/javascript"> jQuery(function ($) { $.ajax({ type: "GET", url: 'steel_agg_bof_flash_en.xml', dataType: "xml", success: xmlParser }); function xmlParser(xml) { $(xml).find("basics").each(function () { var img = $(this).find('imgpath').text(); $('#clickMapFlashContainer').css({ 'background-image' : 'url(' + img + ')', 'width' : '560px', 'height' : '560px', 'background-repeat' : 'no-repeat', }); }); $(xml).find("hotspot").each(function () { var position = $(this).find('position').text(); var arr = position.split(","); var hotspotid = $(this).find('hsid').text(); $('#clickAreas').prepend('<div id="'+ hotspotid +'_clickable" class="circle" onclick="changeStyle(id);" style="background: #004593; position: absolute; top: ' + arr[1] + 'px' + '; left: ' + arr[0] + 'px' +'; width: ' + Math.floor(arr[2]/3.28148) + 'px; height: '+ Math.floor(arr[2]/3.28148) + 'px; opacity: 0.5; border-radius: 100%; cursor: pointer;"></div>'); }); } }); </script> 是一种同步方法,因此永远不会调用回调函数,并且脚本会超时。

使用:

function changeStyle(hotspotid) { var hotspot = hotspotid.replace('_clickable', ''); var hotspots = document.querySelectorAll(".clickMapItem.text, .clickMapItem.multiImageText"); // Return a NodeList var nodesArray = Array.prototype.slice.call(hotspots, 0); //Convert NodeList to an Array nodesArray.forEach(function(item) { console.log(item); }); var i; for (i = 0; i < hotspots.length; i++) { hotspots[i].style.display = "none"; } if (hotspotid == "clickMap_item_10450_clickable" || hotspotid == "clickMap_item_11006_clickable") { document.getElementById('clickMapFlashContainer').style.display = "none"; } if (hotspots[0].style.display == "") { document.getElementById(hotspot).style.display = ''; document.getElementById("clickMap_item_default").style.display = "none"; } else if (hotspots[1].style.display == "") { document.getElementById("clickMapFlashContainer").style.display = "none"; } }; function backClose() { var sections = document.getElementsByClassName("clickMapItem"); var i; for (i = 0; i < sections.length; i++) { sections[i].style.display = "none"; } document.getElementById('clickMapFlashContainer').style.display = ""; document.getElementById("clickMap_item_default").style.display = ""; } }

bcrypt.hashSync