当前位置: 首页 > 知识库问答 >
问题:

Node.jsrequest.body是空的

弓玉书
2023-03-14

尝试从MEAN应用程序中的注册表单发布,我可以使用Postman使用x-ows-form-urlencoded成功发布,但当我console.log时,应用程序中的请求正文为空。注册表单(部分):

<form class="form-horizontal" ng-submit="register.saveUser()">

            <div class="form-group">
                <label class="col-sm-2 control-label">Name</label>
                <div class="col-sm-6">
                    <input type="text" class="form-control" ng-model="user.userData.name">

应用程序编程接口。js(部分)

var bodyParser = require('body-parser');    // get body-parser
var User       = require('../models/user');
var jwt        = require('jsonwebtoken');
var config     = require('../../config');


var superSecret = config.secret;

module.exports = function(app, express) {

    var apiRouter = express.Router();

    apiRouter.post('/register', function(req, res) {

            var user = new User();  
            user.name = req.body.name;  
            user.username = req.body.username; 
            user.password = req.body.password; 

            console.log(req.body); //EMPTY

我有app.usebody Parser在server.js之前调用api.js

服务器js(部分)

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var apiRoutes = require('./app/routes/api')(app, express);
app.use('/api', apiRoutes);

我做错了什么,但看不出是什么。

为@mscdex:register添加。saveUser()指的是userRegisterController saveUser()html" target="_blank">函数:

.controller('userRegisterController', function(User) {

    var vm = this;

    // function to create a user
    vm.saveUser = function() {
        vm.processing = true;
        vm.message = '';

        // use the register function in the userService
        User.register(vm.userData)
            .success(function(data) {
                vm.processing = false;
                vm.userData = {};
                vm.message = data.message;
            });

    };  

这将使用userService注册功能:

// register a user
    userFactory.register = function(userData) {
        return $http.post('/api/register/', userData);
    };

这将调用我在上面发布的api文件。

顺便说一句,当我使用Postman时console.dir(req.headers['content-type'])显示'应用程序/x-ows-form-urlencoded'并成功。

共有1个答案

法烨华
2023-03-14

今天我花了好几个小时在这个问题上,最终apiRouter函数接收到“未定义”的问题是由于我使用了

<input type="text" class="form-control" ng-model="user.userData.name">

而我应该用

<input type="text" class="form-control" ng-model="register.userData.name">

因为我曾经用过

.when('/register', {
            templateUrl: 'app/views/pages/register.html',
            controller: 'userCreateController',
            controllerAs: 'register'
        });

在APIRouts文件中。我还在学习ControllerAs在这种情况下的用法。

 类似资料:
  • 问题内容: 我正在使用postgreSQL。我有一列: 但是,当我想插入带有空字符串的行时,如下所示: 它不会给我错误并接受。如何检查插入值应为?(既不为空也不为空) PS: 我的专栏定义为: 问题答案: 向列定义添加约束。例如类似: 有关更多信息,请参见http://www.postgresql.org/docs/current/static/ddl- constraints.html

  • 我想运行一个复杂的HQL查询。我的一个参数是< code >集合 类似: spring甚至不能启动< code >???未映射 从表t中选择t,其中size((:codes)) = 0或t.code IN (:codes) 和许多其他人 是否有一种通用方法可以进行此检查并使此查询在不完全构建查询的情况下工作?

  • 问题内容: 检查对象是否为空的最快方法是什么? 有没有比这更快更好的方法: 问题答案: 我假设用 空 表示“没有任何属性”。 例子: 如果只需要处理ECMAScript5浏览器,则可以使用而不是循环: 这将确保即使对象仅具有不可枚举的属性,也仍将为您提供正确的结果。

  • 我想在python中使用OpenCV识别给定图像中的托盘是否为空。 以下是我尝试过的 使用下面的代码检测最大的矩形并裁剪 它适用于中型和大型物体,但当我放硬币等小型物体时,这种方法不起作用,因为托盘也有一些划痕和灰尘。这是我在python中使用OpenCV的第一个项目 请帮助找到满足此要求的解决方案。

  • 我在使用Discord。js和一个长时间运行的Discord bot最近由于消息而突然停止工作。成员对象始终为空。 例如: 这始终会产生:TypeError:无法读取null的属性“roles” 在我们查看消息的代码库中,这种错误也随处可见。成员 即使控制台完全记录消息对象,我们也可以肯定地看到成员属性为空。 Discord.js?有什么变化吗?

  • 我知道这已经被问了很多次了,但是我一直在四处寻找,仍然找不到我的问题的答案。 这是我的代码,我确保在定义路由之前使用并配置body解析器。我只是在用。带bodyParser的json(),因为现在我只测试了一个POST函数,但我甚至尝试了应用程序。使用(bodyParser.urlencoded({extended:true})); 这是我收到的答复 在这一点上,我真的非常感谢任何帮助。谢谢