2017-07-17 119 views
0

我已经从一个AngularJS控制器打印数据到工厂,所以客户端有API数据,但是当我发布数据到服务器端时,它打印的是undefined req.body。任何想法下面的代码中缺少什么?如何使用nodejs创建POST rest api?

我已经加入body-parser模块app.js

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); 
     } 
    } 
}); 

节点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); 
    }); 
+0

什么是印刷'的console.log( '用户在工厂',用户);'? – lealceldeiro

+0

您使用的是Express吗? – Aron

+0

@lealceldeiro工厂用户{“firstName”:“John”,“lastName”:“Strat”,“email”:“[email protected]”,“_ id”:“id8976”,“type”:“user” ,“attuid”:“kj897s”,“message”:“用户需要访问”} – hussain

回答

4

不要忘记有你的快递应用实际使用身体分析器。

app.use(bodyParser()); 
0

如果使用Express.js是你必须添加到您的代码只是能够处理POST请求:

app.use(express.bodyParser()); 

我想这是你在找什么。

1

添加身体解析器模块来克服这个问题

app.use(bodyParser());