从console.log获取值到html

时间:2015-12-24 13:11:32

标签: javascript jquery node.js express

我写的函数工作正常,值正确写入我的终端onSubmit,但是我很难拼凑为什么这段代码没有更新我的html。

router.post('/index', function(req, res, next) {

  // ...Get form values, do calculations to get toCost value.

      console.log('$' + toCost);

      $(document).ready(function() {
        var output = document.getElementById('cost');
        output.innerHTML = toCost;
      });

  res.location('/');
  res.redirect('/');
})

我收到以下错误,jquery加载正常。

$ is not defined

不可否认,这是一个过度设计的节点/快递应用程序。代码片段包含在邮件请求中的路由文件中。

如何将我的价值转移到html上?

玉石布局

extends layout

block content
  form(...)
  div#cost

4 个答案:

答案 0 :(得分:4)

执行此操作的常规方法如下:

router.post('/index', function(req, res) {   <<< 'next' removed (only needed if using middleware)

  // ...Get form values, do calculations to get toCost value.

  console.log('$' + toCost);

  res.render('indexTemplate', {cost: toCost}); <<< pass toCost through to jade as 'cost'
});

然后在indexTemplate的jade文件中,你可以像这样引用传入的'cost'变量:

indexTemplate.jade:

extends layout

block content
  form(...)
  div#cost #{cost} <<< adds the cost variable to page

然后,toCost的值将出现在结果页面中。

服务器端不需要jQuery。

答案 1 :(得分:2)

jQuery是为DOM操作而制作的,服务器上没有DOM。 尝试使用&#39; jsdom&#39;。 jQuery是为客户端脚本编写的,而不是服务器端客户端操作。

答案 2 :(得分:2)

您似乎正在尝试从后端进行客户端更改。它没有那种方式。

您可以在后端创建一个变量来存储计算结果。并通过get来自客户端

的查询获取此值

答案 3 :(得分:1)

你想从服务器端的NodeJS到达DOM(在客户端)。它没有那种方式。