为什么不能在脚本中使用 findOne() 函数?

Why cannot use findOne() function in scripts?

<button class="button is-link" type="submit"
                                onclick="matching('<%= product.id %>')">Define</button>

按钮的HTML。

<script>
    async function matching(productID) {
        var r = confirm("Define preference?");

        if (r) {
            alert("testing1")
            
            var thatProduct = await PriceTracker.findOne(productID);
            
            alert("testing2")

            if (thatProduct) {
                alert("Have that product");
                location.assign("/");
            } else if (response.status == 409) {
                var e = await response.json();
                alert(e);
            } else if (response.status == 404) {
                var e = await response.json();
                alert(e);
            }
        } else {
            alert(response.statusText);
        }
    }
</script>

这是sails框架匹配函数的代码。

当我点击按钮时,会调用匹配函数。

可以显示确认框。当我点击'ok'时,也能显示“testing1”的提示信息,而无法显示第二个提示信息“testing2”,因此也无法达到“if条件”。

如何从我的数据库中获取该产品以供进一步使用?

await 在 top-level 代码中不起作用

把你的matching函数改成这个

var matching = (async (productID) => {
    try {
       ...    } 
    catch (e) {
      // handle the error
      ...
    }
})();