Node.js AJAX呼叫中断,NodeJS,Express,handlebar

Node.js AJAX呼叫中断,NodeJS,Express,handlebar,node.js,ajax,express,handlebars.js,Node.js,Ajax,Express,Handlebars.js,这件事我已经做了好几天了。我肯定这是件很愚蠢的事,但我已经失去理智了 公共文件设置正确 错误消息: Uncaught ReferenceError: togDefine is not defined 前端HTML: <li class="list-group-item list-group-item-dark"> <div class="row"> <div class="col-md-4"

这件事我已经做了好几天了。我肯定这是件很愚蠢的事,但我已经失去理智了

公共文件设置正确

错误消息:

Uncaught ReferenceError: togDefine is not defined
前端HTML:

<li class="list-group-item list-group-item-dark">
   <div class="row">
     <div class="col-md-4"><strong>Heating:</strong> {{#if heating}} {{this.heating}} {{else}} N/A {{/if}}</div>
     <div class="col-md-4"><strong>Cooling:</strong> {{#if cooling}} {{this.cooling}} {{else}} N/A {{/if}}</div>
     <div class="col-md-4">
       <input type="checkbox" id="pvt{{this.id}}" checked="{{this.private}}" onchange="togDefine({{this.id}}, {{this.private}});" data-toggle="toggle" data-on="Private" data-off="Public" data-onstyle="success" data-offstyle="danger" />
     </div>
   </div>
后端:

//TOGGLE Private vs Public PROPERTY
app.put('/api/pvtToggle/', isAuthenticated, function(request, response) {
  db.Prop.update({
    private: request.params.newState
  }, {
    where: {
      id: request.params.id
    }
  }).then(data => {
    response.send('ok');
  }).catch(error => {
    console.log(error);
  });

});

请帮助我找出请求无法正常工作的原因:D

您的函数
togDefine()
在此块中定义:

$(function() { /* in here */ })
因此,该函数名仅在该块中可用,对HTML不可用。因为仅仅定义一个函数实际上并不执行任何事情,所以没有理由在这种块中定义函数,除非您只希望该块中的符号可用


既然您明确不希望在这里使用,只需将
togDefine()
的定义移到该块之外。

Ok,这样就解决了第一个问题。现在我发现了一个错误:发布404(未找到)如果您对此有任何想法,我将非常感谢。:)@Eric-服务器代码应该是PUT,而不是POST。该代码还需要在
.catch()
中向客户端发送响应。非常感谢,您是一位传奇人物!
$(function() { /* in here */ })