如何使用 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 标头不起作用