尝试通过angularjs和node将用户数据发送到mongodb
trying to send user data to mongodb via angularjs and node
大家好,我有这个模板,我正试图从注册表单开始为它创建一个后端。尽管我的mongodb和我的应用程序之间有某种类型的连接,但数据不会发送到数据库,这是html:
<ion-view class="auth-view" cache-view="false">
<ion-nav-bar class="view-navigation">
<ion-nav-back-button>
</ion-nav-back-button>
</ion-nav-bar>
<ion-content class="padding">
<div class="row form-heading">
<div class="col">
<h1 class="form-title">Create your account</h1>
<h3 class="form-sub-title">Sign up with Social Network or Email</h3>
<div class="social-sign-up button-bar">
<a class="button icon ion-social-facebook button-positive"></a>
<a class="button icon ion-social-twitter button-calm"></a>
</div>
</div>
</div>
<div class="row form-separator">
<hr class="separator-line"/>
<span class="separator-mark">OR</span>
<hr class="separator-line"/>
</div>
<div class="row form-wrapper">
<div class="col">
<form name="signup_form" class="" novalidate>
<div class="form-fields-outer list list-inset">
<div class="row multi-inputs">
<div class="col">
<label class="item item-input">
<input class="multi-input" type="text" placeholder="Name" name="name" ng-model="user.name" required>
</label>
</div>
<div class="col">
<label class="item item-input">
<input class="multi-input" type="text" placeholder="Username" name="username" ng-model="user.userName" required>
</label>
</div>
</div>
<label class="item item-input">
<input type="email" placeholder="Email" name="email" ng-model="user.email" required>
</label>
<label class="item item-input">
<input type="tel" placeholder="Phone Number" name="phone" ng-model="user.phone" required>
</label>
<label class="item item-input" show-hide-container>
<input type="password" placeholder="Password" name="password" ng-model="user.password" required show-hide-input>
</label>
<button type="submit" class="sign-up button button-block" ng-click="doSignUp()" ng-disabled="signup_form.$invalid">
Sign Up
</button>
<p ng-show="error" class="message error">{{error}}</p>
</div>
</form>
</div>
</div>
</ion-content>
</ion-view>
这是我试图发布数据的代码
.controller('CreateAccountCtrl',['$scope', '$http', function($scope, $http){
$scope.doSignUp = function(){
console.log("doing sign up");
$http.post('/accounts', $scope.user).success(function (user) {
console.log(user);
});
// $state.go('app.feed');
};
}])
最后是我的server.js到目前为止的
var express = require('express');
var app = express();
var mongojs = require('mongojs');
var db = mongojs('accounts',['accounts']);
var bodyParser = require('body-parser');
//app.use(express.bodyParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static(__dirname + "/www"));
// app.get('/accounts', function(req, res){
// // res.send("i got the request")
// db.accounts.find(function(err, docs){
// console.log(docs);
// res.json(docs);
// });
// });
app.post('/accounts', function(req, res){
// console.log(req.body.user);
db.accounts.insert(req.body.user, function(err, doc){
res.json(doc);
});
});
app.listen(3000);
console.log("server running on port 3000");
我知道有一些地方出了问题,但我不知道是什么,因为我还在学习。提前感谢的帮助
我也遇到了来自mongo 的这个错误
TypeError: Cannot read property '_id' of undefined
at /Users/beast/node_modules/mongojs/lib/collection.js:83:19
at /Users/beast/node_modules/mongojs/lib/collection.js:20:7
at apply (/Users/beast/node_modules/thunky/index.js:16:28)
at /Users/beast/node_modules/thunky/index.js:20:25
at /Users/beast/node_modules/mongojs/lib/database.js:36:9
at /Users/beast/node_modules/mongodb/lib/mongo_client.js:519:11
at nextTickCallbackWith0Args (node.js:420:9)
at process._tickCallback (node.js:349:13)
您的express控制器正在正文中查找一个名为"user"的属性。您只是将用户对象直接传递到身体中。在角度控制器中尝试以下操作:
.controller('CreateAccountCtrl',['$scope', '$http', function($scope, $http){
$scope.doSignUp = function(){
console.log("doing sign up");
$http.post('/accounts', { user: $scope.user}).success(function (user) {
console.log(user);
});
// $state.go('app.feed');
};
}])
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 画布数据到图像
- 使用jquery将mysql数据获取到新的表行中
- 使用html中的外部javascript进行数据验证
- 有时数据是't显示在浏览器中
- React中的数据集表示
- Angular只从数组中获取所需的数据
- 无法将数据从firebase获取到我的html页面
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据