如何使用 nodejs 创建 POST REST API? [复制]

Posted

技术标签:

【中文标题】如何使用 nodejs 创建 POST REST API? [复制]【英文标题】:How to create POST rest api using nodejs? [duplicate] 【发布时间】: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()) 谢谢,这就是问题所在! 【参考方案1】:

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

app.use(bodyParser());

【讨论】:

【参考方案2】:

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

app.use(bodyParser());

【讨论】:

【参考方案3】:

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

app.use(express.bodyParser());

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

【讨论】:

以上是关于如何使用 nodejs 创建 POST REST API? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS - 只有 OPTIONS 请求被发送到 REST API,POST 或 GET 不跟随(Cloudflare)

Angular 2 + NodeJS + Mongoose - 从 Angular 2 发布数据到 rest api nodejs 后端。节点 api 日志:选项 /url,POST 标头不起作用

如何在 API 的 RPC 和 REST 之间做出决定?

在nodejs中使用rest auth api

使用 Jquery 从 REST API nodeJS 获取数据 [重复]

NodeJS 创建 HTTPS Rest body 请求 JSON