如何将json对象传递给节点js服务器

我想创build一个混合移动应用程序,其中后端是节点js,它将保存数据在MongoDB我的服务器工作正常我准备好的路线处理用户请求

我可以从我的服务器使用GET方法获取数据,但我的问题是我无法保存使用POST方法从离子用户界面发出的数据。 我试图发送数据使用POSTMAN的数据被成功保存在MongoDB中,但是当我从移动用户界面

这是一张图片,显示使用POSTMAN发送POST请求的节点js服务器和从移动用户interce发送POST请求的结果

在这里输入图像说明

而这个数据是如何保存在mongoDB中的

在这里输入图像说明

这是我在节点服务器的路由文件

var Product = require('../models/product'); var express = require('express'); var router = express.Router(); router.route('/products') .get(function(req, res) { Product.find(function(err, products) { if (err) { return res.send(err); } res.json(products); }); }) .post(function(req, res) { console.log(req.body); var product = new Product(req.body); product.save(function(err) { if (err) { return res.send(err); } res.send({ message: 'product Added' }); }); }); 

这是forms

 <label class="item item-input"> <input name="1" type="text" ng-model="product.nom" placeholder="nom du produit"> </label> <label class="item item-input" > <input name="2" type="text" ng-model="product.unite" placeholder="unité de cette produit"> </label> ... <div class="item button button-block button-positive" ng-click="createProduct(product)" > ajouter le produit </div> 

这是产品的控制者:

 app.controller('productController', function($http, $scope) { $scope.createProduct = function (new_prod){ console.log(new_prod); var req = { method: 'POST', url: "http://localhost:3000/api/products", headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, data: new_prod }; $http(req) .then(function(response) { console.log(response); }); }; 

如果您发布的是JSON,则不应使用application/x-www-form-urlencoded的内容types。 改用application/json

https://tools.ietf.org/html/rfc4627

application / x-www-form-urlencoded不适用于json,它适用于你在urls中看到的数据:

 key=value&foo=bar 

我认为你的问题与CORS有关。

您需要安装https://github.com/expressjs/cors并在您的快速应用程序中使用它们&#xFF1A;

 var Product = require('../models/product'); var express = require('express'); var cors = require('cors'); var app = express(); var router = express.Router(); app.use(cors()); router.route('/products') .get(function(req, res) { Product.find(function(err, products) { if (err) { return res.send(err); } res.json(products); }); }) .post(function(req, res) { console.log(req.body); var product = new Product(req.body); product.save(function(err) { if (err) { return res.send(err); } res.send({ message: 'product Added' }); }); });