Angularjs 剩余和平均堆栈:用保存的数据填充表单

Angularjs 剩余和平均堆栈:用保存的数据填充表单,angularjs,node.js,rest,mean-stack,Angularjs,Node.js,Rest,Mean Stack,我有一个restapi和一个MEAN应用程序。用户可以使用他们的电子邮件地址登录到我的应用程序,然后使用html表单将项目写入数据库。 我想要实现的是:当用户将项目写入数据库时,html表单应该填充数据库中的数据。需要的数组应该由用户的电子邮件地址标识 所以这里我们得到了我的html表单: <div class="form-group"> <label for="author">Author</label> <input type="te

我有一个restapi和一个MEAN应用程序。用户可以使用他们的电子邮件地址登录到我的应用程序,然后使用html表单将项目写入数据库。 我想要实现的是:当用户将项目写入数据库时,html表单应该填充数据库中的数据。需要的数组应该由用户的电子邮件地址标识

所以这里我们得到了我的html表单:

<div class="form-group">
    <label for="author">Author</label>
    <input type="text" class="form-control" name="author" id="email" value="<%= user.local.email %>" readonly ng-value="email">
</div>

<div class="form-group">
    <label for="name">Projektname</label>
    <input type="text" class="form-control" name="name" ng-value="name">
</div>

<div class="form-group">
    <label for="description">Beschreibung</label>
    <input type="text" class="form-control" name="description" ng-value="description">
</div>

<div class="form-group">
    <label for="tags">Tags</label>
    <input type="text" class="form-control" name="tags" ng-value="tags">
</div>
我的路线:

    //GET /projects/:id
    app.get('/projects_view/:id', function (req, res, next) {
        Project.findById(req.params.id, function (err, project) {
            if (err) return next (err);
            res.json(project);
        });
    });

    //PUT /projects/:id
    app.put('/projects_view/:id', function (req, res, next) {
        Project.findByIdAndUpdate(req.params.id, req.body, function (err, post) {
            if (err) return next (err);
            res.json(post);
        });
    });
我的解决方案:

我试着用$find,但它似乎对我不起作用。 有人知道我怎样才能做到这一点吗

来自德国的亲切问候,
David

以下是实现此目的的方法

mongoose = require('mongoose');
var Project= mongoose.model('Project');
app.post('/projects_view', function(req, res, next) {
  var project_post = new Project(req.body);
  Project.findOne({ email:project_post.email}, function (err, doc){
  // doc is a Document
   if (err) { return next(err); }
   if (!doc) { return next(new Error('can\'t find')); }

    console.log(doc); // log the post in console
    res.json(doc);
});
 });

希望这有帮助。

谢谢,但我只想获得一条数据记录,由电子邮件地址标识。然后,此记录应为表单字段的值。通过这种方式,用户可以看到,他已经发布了一个项目,并且可以在表单字段中对其进行更新。@davidnamremmiz尝试上述代码,我使用相同的代码在我的mongodb中搜索帖子。感谢您的努力,问题:我想在用户每次在其个人资料页面上进行查询,而不仅仅是在他发布某个内容时。因此,如果我做对了,我必须通过一个角度控制器将邮件地址传递给get路由,所以mongo会给我预期的数据。更具体地说:我的目标是进行mongoose查询,找到由特定电子邮件地址编写的项目。地址必须从视图传递到路由器。如果该电子邮件地址有数据库条目,我的响应应该以视图的html形式抛出
<script>
    var app = angular.module('myApp', []);
    app.controller("formController", ['$scope', '$http', '$filter', function($scope, $http, $filter){
        $http.get('/projects_view/').
        then(function(res){
            var allProjects = res.data;
            var singleProject = $filter('filter')(allProjects, function(d){
                return d.author === email;
                });
            };
        });
    }]);
</script>
mongoose = require('mongoose');
var Project= mongoose.model('Project');
app.post('/projects_view', function(req, res, next) {
  var project_post = new Project(req.body);
  Project.findOne({ email:project_post.email}, function (err, doc){
  // doc is a Document
   if (err) { return next(err); }
   if (!doc) { return next(new Error('can\'t find')); }

    console.log(doc); // log the post in console
    res.json(doc);
});
 });