节点js可以计算两个输入字段的值并更新另一个字段吗?

时间:2015-01-22 13:54:27

标签: javascript node.js

我想使用nodejs计算两个输入字段值的值并更新答案字段

<input type="text" name="number">
<input type="text" name="number">
<input type="text" name="answer">

我已经看过它用jquery完成了,并且想知道nodejs是否可以实现相同的目标?

2 个答案:

答案 0 :(得分:2)

基本答案是否定的,而不是单独的答案。

Node.js在服务器端运行。表单(如您的示例)在客户端(浏览器)上运行。您仍然需要运行其他一些客户端javascript,以至少将字段发送回节点服务器应用程序来计算它们。

你可能正在寻找的是一个像客户端一样的AngularJS系统,它可以提供更多的结构。

http://plnkr.co/edit/SZ8DJf?p=preview

这是javascript:

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.value1 = 'Hello';
  $scope.value2 = 'World';

  $scope.$watch('value1', updateValue3);
  $scope.$watch('value2', updateValue3);

  function updateValue3() {
        $scope.value3 = $scope.value1 + ' ' + $scope.value2;  
  }
});

这是HTML:

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.10/angular.js" data-semver="1.3.10"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <label for="">Value 1<input ng-model="value1"></label><br>
    <label for="">Value 2<input ng-model="value2"></label><br>
    <label for="">Value 3<input ng-model="value3"></label><br>

    You don't need an input to show the value, either: {{value3}}
  </body>

</html>

答案 1 :(得分:0)

如果您实际上希望它在服务器端完成,使用node.js,那么您将不得不创建一个单独的节点应用程序,公开某种REST接口/ API,并使用客户端Javascript来创建一个HTTP调用节点应用程序以计算答案。这远远超过有人可以在Plunk演示。

虽然如果你对这样的事情感兴趣,你可以使用Yeoman来构建一些基本的多层应用程序作为起点。由于我喜欢使用AngularJS,我经常使用AngularFullstack

AngularFullstack将为您提供创建与节点服务器端应用程序接口的客户端应用程序的基础知识,同时帮助您创建将定义您使用的REST接口以及如何使用客户端应用程序的路由访问服务器端节点部分的资源。