通过angularjs在mongodb中插入嵌入式文档
Insert embedded document in mongodb via angularjs
我正在尝试通过AngularJS在MongoDB中插入嵌入式文档。父文档存在。这是嵌入文档的架构
offers: [{
date: Date,
offer: {
id: mongoose.Schema.ObjectId,
added: {
type: Date,
default: Date.now()
},
displayName: String,
creator: Number,
//creator: {
// type: mongoose.Schema.Types.ObjectId,
// ref: 'User'
//},
photo: String,
description: String,
additional: {
name: String,
data: String
}
},
linkedBy: Number
}],
这是我的路由器
router.post('/',expositionController.create);
router.get('/',expositionController.getAll);
router.get('/:id',expositionController.get);
router.put('/:id',expositionController.update);
router.delete('/:id',expositionController.delete);
router.post('/:id/offer',expositionController.createOffer);
在控制器中创建报价方法
exports.createOffer = function(req,res){
var id = req.params.id;
try{
id = new ObjectId(id);
Exposition.findById(id,function(err,exposition){
if(err){
res.send(err);
}
exposition.offer = new Offer(req.body.offer);
exposition.save(function(err){
if(err)
res.send(err);
res.json({message: "Ok"});
});
});
}catch(e){
res.send(404);
}
};
这是来自 AngularJS 控制器的代码,插入了报价
$scope.createOffer = function (_id) {
var offerResource = new OfferResource();
offerResource.offer = new OfferUpdateService();
offerResource.offer.name = $scope.offer.name;
offerResource.offer.photo = $scope.uploadPhoto;
offerResource.offer.description = $scope.offer.description;
offerResource.$save(function (result) {
$scope.offer.name = '';
$location.path("/exposition/")
});
};
和 AngularJS 路由
$stateProvider
.state('offer', {
url: "/:id/offer/",
templateUrl: 'app/exposition/listOffers.tpl.html',
controller: 'ExpositionsController'
})
当我尝试插入报价时,我收到错误
http://localhost:3000/exposition/offer 404 not found
我做错了吗?
谢谢!
错误 404 它关于不存在在这种情况下的资源 URL 来发布帖子,尝试使用此路线:
router.post('/offer/:id',expositionController.createOffer);
您也可以尝试使用 get 定义路由,仅通过 GET/浏览器粘贴 URL 查看响应和访问资源:
router.get('/offer/:id',expositionController.createOffer);
您仅通过 GET 接收属性,例如,如果您创建此路由:
router.get('/offer/:id',expositionController.createOffer);
您调用: 将此网址粘贴到浏览器中 http://localhost:3000/exposition/offer/0001
您可以将 ID 记录到预期:
exports.createOffer = function(req,res){
console.log(req.params.id)
var id = req.params.id;
try{
id = new ObjectId(id);
Exposition.findById(id,function(err,exposition){
if(err){
res.send(err);
}
exposition.offer = new Offer(req.body.offer);
exposition.save(function(err){
if(err)
res.send(err);
res.json({message: "Ok"});
});
});
}catch(e){
res.send(404);
}
};
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- 将样式表插入iframe
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- 如何动态插入jquery代码
- 动态插入的表:JQuery未检测到最后一行
- 使用JavaScript动态插入DIV的成本有多高
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 将对象动态插入到现有对象中
- 将数组中的值插入到表中
- WebResources嵌入式资源和Javascript如何在另一个嵌入式资源中使用它们
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 使用PHP插入HTML在JavaScript上不起作用
- javascript:将数据库中的数据插入到html5文本字段中
- 从数据库中获取数据并插入JavaScript变量
- 如何运行以嵌入式形式插入到.innerHTML中的javascript
- 通过angularjs在mongodb中插入嵌入式文档
- MongoDB使用Map Reduce插入来自其他集合的嵌入式文档
- 在嵌入式 JavaScript 中插入 AssemblyInfo(例如.DLL版本号)
- 插入嵌入式文件mongodb从快递应用程序