如何将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并在您的快速应用程序中使用它们:
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' }); }); });
- 在Nodejs中查找Mongodb
- 如何创build新的应用程序项目,而无需一次又一次下载和安装npm模块?
- Socket.IO消息不更新angular度variables
- 在Rest API中使用Facebook维护Express和NodeJS中的JWT的密钥和访问令牌
- 使用节点缓冲区或fileStream与formDatafile upload
- 在html5模式下使用ng-route重新加载angular度页面不会返回index.html
- 鲍尔呼叫由公司代理封锁,然后在更新.bowerrc时出现错误
- 用Googleloginlogin我的网站后获取谷歌帐户信息(用于login的卫星lib)
- 在后端或前端列出一个集合