当前位置: 首页 > 面试题库 >

ExpressJS AngularJS发布

贡斌
2023-03-14
问题内容

我正在学习AngularJS,我想知道如何使用ExpressJS与Node正确连接。

这是我的控制器:

app.controller('view1Ctrl', function($scope, $http) {

    $scope.sub = function(desc) {
        console.log(desc);
        $http.post('/view1', desc).
        then(function(response) {
            console.log("posted successfully");
        }).catch(function(response) {
            console.error("error in posting");
        })
    }
});

这是我的server.js:

app.post('/view1', function(req, res) {
    console.log(res.desc);
    res.end();
});

我没有使用过人体分析仪。当我在控制器中使用函数时,我不知道如何使用body-parser从html获取表单值。使用body-
parser时,值是从单击提交时的html获取的,还是从我将表单值作为参数传递给其的函数中获取的?请告诉我它是如何完成的。

编辑: 这是我的html:

<form>
      <input type="text" ng-model="desc" placeholder="Enter desc" />
      <button class="btn btn-primary" ng-click="sub(desc)">Submit</button>
</form>

编辑2: 完整的server.js代码:

var express = require('express'),
    http = require('http'),
    path = require('path'),
    bodyParser= require('body-parser');

var app = express();

app.set('port', 3000);

app.use(express.static(path.normalize(__dirname + '/')));
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing       application/x-www-form-urlencoded

app.get('/main', function(req, res) {
    var name = 'MyNameFromServer';
    res.send(name);
});

app.post('/view1', function(req, res) {
    console.log(res.body.desc);
    res.end();
});

http.createServer(app).listen(app.get('port'), function() {
    console.log('Express server listening on port ' + app.get('port'));
});

编辑3: 编辑控制器app.js

app.controller('view1Ctrl', function($scope, $http) {    
    $scope.sub = function() {
        console.log($scope.formData);
        $http.post('/view1', $scope.formData).
        success(function(data) {
            console.log("posted successfully");
        }).error(function(data) {
            console.error("error in posting");
        })
    };
});

问题答案:

Node.js(Express)的body-
parser模块可以将表单中的所有数据获取到一个名为的对象中req.body,因此,如果您有一个$scope对象来定义表单数据,则可以直接注入该对象,以在req上复制相同的属性。身体:

角度:

app.controller('view1Ctrl', function($scope, $http) {
    $scope.sub = function() {
        $http.post('/view1',$scope.formData).
        then(function(response) {
            console.log("posted successfully");
        }).catch(function(response) {
            console.error("error in posting");
        })
    }
});

HTML:

<form>
      <input type="text" ng-model="formData.desc" placeholder="Enter desc" />
      <input type="text" ng-model="formData.title" placeholder="Enter title" />
      <button type="submit" class="btn btn-primary" ng-click="sub()">Submit</button>
</form>

现在,当您通过提交时,$http.post('/view1', $scope.formData)您将获得相同的对象,例如:

app.post('/view1', function(req, res) {
    console.log(req.body.desc);
    res.end();
});

不用单击提交按钮,您还可以ng-submit在form元素中使用如下所示:

<form ng-submit="sub()">


 类似资料:
  • 问题内容: 我想以编程方式从Java程序启动Maven发行版。该网页显示了一般的操作方法。这就是我所做的: 该论坛建议“在发布之前,请先查看一下表格,您就应该能够提出cURL请求”,这就是我所做的。发行至少开始。 我现在不知道如何逃避一切。浏览器将空格显示为“ +”,但是如果我以这种方式发送数据,它将无法正常工作。实际上,“”,“ +”或“%20”都不用作空格。 我仍然可以进入构建,因此我可以肯定

  • 以下是我的情况: < li >客户端向Netty服务器发送POST请求。 < li>Netty处理POST请求,如果服务器确定需要发送响应,它会将响应发送回客户端。否则,服务器必须向另一个endpoint发送POST请求,获取响应并将该响应发送回客户端。 到目前为止,我已经处理了传入的POST请求。要发送传出的POST请求,这是我在Handler中所做的。 这显然是错误的,因为我正在处理程序中启动

  • 从1.14.0开始支持预发布、灰度发布,可登陆SOP-Admin,然后选择服务列表进行操作。 使用预发布 SOP中预发布的思路如下: 假设网关工程sop-gateway在阿里云负载均衡有两台服务器,域名分别为: 域名 说明 open1.domain.com 网关服务器1 openpre.domain.com 网关服务器2,作为预发布请求入口 SLB对外域名为:open.domain.com,即开放

  • CMS发布插件开发 使用“后台»工具&开发»开发»CMS发布插件”可快速生成插件 我们用个示例来演示如何制作插件,首先确定我们的需求:将采集的文章发布到wordpress程序里 输入插件名称:wordpress文章入库,CMS程序选择wordpress,插件功能标识:article(表示文章入库),作者版权填你自己的 然后添加参数,什么是参数呢?参数在界面中是可视化的控件,可绑定或输入数据,方便用

  • 维护同时的平行发布包含了如何完成日常开发的暗示。特别是应该遵守每次提交只包含一个单独逻辑变更的铁律,绝不要在一次提交中混杂不相关的变更。如果一次提交的变更太大,或具有破坏性,可以分为N此提交,每次提交都是一个整体变更的分区子集,而且不包含与整体变更无关的内容。 这里是一个未经慎重考虑进行提交的例子: ------------------------------------------------

  • 现在我们已经按照指南里的步骤写好一个声明文件,是时候把它发布到npm了。 有两种主要方式用来发布声明文件到npm: 与你的npm包捆绑在一起,或 发布到npm上的@types organization。 如果你能控制要使用你发布的声明文件的那个npm包的话,推荐第一种方式。 这样的话,你的声明文件与JavaScript总是在一起传递。 如果你的包有一个主.js文件,你还是需要在package.js

  • 本章应该与 rel(4) , systools(3) 和 script(4) 。 发布的概念 当我们已经写了一个或多个应用后,我们可能想创建一个由这些应用和Erlang/OTP应用的一个子集组成的完整系统。 要实现这个目的,我们通过创建一个定义在发布中要包含哪些应用的 发布资源文件 。 该发布资源文件是用于生成 启动脚本 和 发布包 。传送并安装在另外一个站点的系统称之为 目标系统 。如果使用发布

  • 使用xsltproc将它发布为 Html xsltproc /usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/html.xsl docbook.xml xsl-stylesheets目录,里面包含可以发布的格式。该路径可能会因系统的不同而改变 发布为 Html 格式所需要的 xsl 文件 发布为单独的 html 页面。如果需要分页,使用chu