gpt4 book ai didi

angularjs - 将数据发布到 mongoDb 后如何取回 id?

转载 作者:太空宇宙 更新时间:2023-11-04 00:17:53 24 4
gpt4 key购买 nike

我正在使用 Node.js、AngularJS 和 mongoDb。
我正在创建一个产品上传页面。

它分为两部分:

  1. 数据页面:这部分将包含文本字段和下拉菜单。
  2. 图片上传页面:这部分将有图片上传控制。

所以我想在同一页面中创建2个表单,从第一页开始,我将文本数据发布到mongoDb,返回新创建产品的product_id,然后上传返回的product_id的图像

我开发了restFul API来发布产品api/products/create-product
产品型号:

{
productName:{type: String},
productPrice:{type: Number}
}


图像模型:

{
productId:{type: String},
imagePaths:[{type: Array}]
}


产品 Controller ( Angular ):

$scope.newProduct = function(){
var formData = new FormData;
for(key in $scope.product){
formData.append(key, $scope.product[key]);
}
//getting the files
var file = $('#file')[0].files[0];
formData.append('image', file);

//Post data
$http.post('http://localhost:3000/products/api/new-product',formData,{
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
}).then(function(res){
$scope.item = res.data;

});
}


Angular 前端

<input type="text" class="form-control" ng-model="product.productName" placeholder="Enter Product Name">
<input type="file" multiple="multiple" id="file" >
<button type="submit" ng-click="newProduct()" class="btn btn-primary">Add Product</button>


POST API

router.post('/api/new-product',upload.any(),function(req, res, next){

var pro = req.body;
if(req.files){
req.files.forEach(function(file){

var filename = (new Date()).valueOf() + '-' + file.originalname;
fs.rename(file.path,'public/images/'+ filename, function(err){
if (err) throw err;
//Save to mongoose

var product = new Products({
productName: req.body.productName
});
product.save(function(err, result){
if(err){ throw err}
res.json(result);
});



});
});
}
});

问题:

  1. 我这样做的方法正确吗?还是有其他更好的方法?
  2. 如果这是正确的方式,那么我如何发布product_id,以便发布图像?
    谢谢。

最佳答案

5秒进入谷歌(没有测试):

collection.insert(objectToInsert, function(err){
if (err) return;

// Object inserted successfully.
var objectId = objectToInsert._id; // this will return the id of object inserted
});

Source

关于angularjs - 将数据发布到 mongoDb 后如何取回 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45953072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com