使用Angularjs和nodejs进行Mongodb CRUD操作-如果数据已经存在,如何从数据库中获取消息?
Posted
技术标签:
【中文标题】使用Angularjs和nodejs进行Mongodb CRUD操作-如果数据已经存在,如何从数据库中获取消息?【英文标题】:Mongodb CRUD operation with Angularjs and nodejs - How to get message from database if data is already exist? 【发布时间】:2016-03-25 20:49:54 【问题描述】:在 controller.js 中:
angular.module('CRUD').controller('myController',['$scope','$http', function($scope,$http)
$scope.sendData = function()
console.log($scope.data1);
var formData =
"username" :$scope.username,
"email" :$scope.email
;
$http(
url:'/formData',
method:'POST',
data:formData
).success(function(data)
console.log(data);
);
]).directive("myFirstDirective",function()
return
template:"<b>custom directive</b>",
restrict:'E';
);
【问题讨论】:
【参考方案1】:-
在你的 nodeJS 路由 API 中
//User Schema
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema(
username: String,
email:
type: String,
unique: true //means the email has to be unique across all documents
);
UserSchema.path('email').validate(function(value, done)
this.model('User').count( email: value , function(err, count)
if (err)
return done(err);
// If `count` is greater than zero, "invalidate"
done(!count);
);
, 'Email already exists');
module.exports = mongoose.model('User', UserSchema);
...
//API
app.post('/formData', function(req, res)
User.create(req.body, function(err)
if (!err)
res.send(200); //user created
else
if (err.name === 'ValidationError') res.send(409); //stands for form validation error
else res.send(500);
);
);
-
将请求放入服务的良好做法。例如
angular.module('CRUD').controller('myController',['$scope','$http', 'CRUDService', function($scope,$http, CRUDService)
$scope.sendData = function()
CRUDService.createUser(
username: $scope.username,
email: $scope.email
).then(function(res)
//all good user was created
, function(err)
//error, failed to create user
if (err.status === 409)
//email already exists
);
]).service('CRUDService', ['$http', function($http)
this.createUser = function(postData)
return $http.post('/formData', postData);
]);
【讨论】:
以上是关于使用Angularjs和nodejs进行Mongodb CRUD操作-如果数据已经存在,如何从数据库中获取消息?的主要内容,如果未能解决你的问题,请参考以下文章
使用 nodejs、angularjs 和 paypal sdk 付款结果 cors 错误
MongoError: 必须使用 Mongo DB Native NodeJS Driver 对所有 $meta 排序键进行 $meta 投影