【问题标题】:How to create POST rest api using nodejs? [duplicate]如何使用 nodejs 创建 POST REST API? [复制]
【发布时间】:2017-12-22 03:00:29
【问题描述】:

我已将 AngularJS 控制器的数据打印到工厂,因此客户端有 API 数据,但是当我将数据发布到服务器端时,它正在打印未定义的 req.body。知道下面的代码中缺少什么吗?

我在 app.js 中添加了 body-parser 模块

angularJsFactory.js

angular.module('App').factory('LogsFactory', function($http) {
    'use strict';
    return {
        addNewUser: function(user) {
            console.log('user in factory', user);
            return $http.post('/newUser', user);
        }
    }
});

Node-App.js

var express = require('express');
var app = express();
var fs = require('fs');
var path = require('path');
var jsonfile = require('jsonfile');
var async = require('async');
var server = require('http').createServer(app);
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser')
var io = require('./app/io').initialize(server);
app.use(cookieParser());
require('./app/serverfiles/components/auth')(app);

app.use(express.static(__dirname + "/public"));

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

【问题讨论】:

  • 打印什么console.log('user in factory', user);
  • 你在使用 Express 吗?
  • @lealceldeiro 用户在工厂 {"firstName":"John","lastName":"Strat","email":"abc@abc.com","_id":"id8976", "type":"user","attuid":"kj897s","message":"用户需要访问权限"}
  • 你还没有在任何地方完成app.use(bodyParser())
  • 谢谢,这就是问题所在!

标签: javascript angularjs node.js


【解决方案1】:

不要忘记让您的 Express 应用实际使用正文解析器。

app.use(bodyParser());

【讨论】:

    【解决方案2】:

    添加body-parser模块来解决这个问题

    app.use(bodyParser());
    

    【讨论】:

      【解决方案3】:

      如果您使用 Express.js 来处理 POST 请求,您只需添加到代码中:

      app.use(express.bodyParser());
      

      我想这就是你要找的。​​p>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-31
        • 2019-08-03
        • 2023-03-28
        • 2014-03-24
        • 1970-01-01
        • 1970-01-01
        • 2012-07-18
        • 2014-11-20
        相关资源
        最近更新 更多