Как загрузить с помощью multer, а затем сохранить путь в mongodb - PullRequest
0 голосов
/ 07 января 2019

Мне трудно следовать некоторым урокам о том, как использовать multer для загрузки изображения, я не могу найти ответ о том, как загрузить изображение в определенную папку, затем сохранить путь в mongodb и отобразить изображение, когда используя router.get

Любые ответы на этот вопрос, пожалуйста, я очень плохо знаком со средним стеком, я искал несколько дней и не могу найти лучшее решение для этого. Вот мой код:

newsfeed.js

var NewsfeedSchema = new Schema({
    subject: { type: String, required: false},
    nw_content: { type: String, required: false, lowercase: false}
});

newsfeedCtrl.js

angular.module('newsfeedControllers', [])

    .controller('newsfeedCtrl', function($location, $timeout, Newsfeed, $route) {
        var app = this;
        app.regNewsfeed = function(regData) {

            Newsfeed.create(app.regData).then(function(data) {

               $timeout(function() {
                   $location.path('/superadmin_newsfeed');
                   $route.reload();
               }, 2000);
            });

            Newsfeed.getNewsfeeds().then(function(data) {
                  app.newsfeeds = data.data.newsfeeds;             
            });
        };
    })

newsfeedServices.js

angular.module('newsfeedServices', [])

    .factory('Newsfeed', function($http) {
        var newsfeedFactory = {}; 

        newsfeedFactory.create = function(regData) {
            return $http.post('/api/newsfeeds', regData); 
        };

        newsfeedFactory.getNewsfeeds = function() {
            return $http.get('/api/newsfeedmanagement/');
        };

        return newsfeedFactory;
    });

api.js

var Newsfeed = require('../models/newsfeed');

router.post('/newsfeeds',function(req, res) {

    var newsfeed = new Newsfeed(); 
    newsfeed.subject = req.body.subject; 
    newsfeed.nw_content = req.body.nw_content;  
    newsfeed.save(function(err) {
        res.json({ success: true, message: 'Announcement Posted!' }); 
    });  
});

router.get('/newsfeedmanagement', function(req, res) {
    Newsfeed.find({}, function(err, newsfeeds) {
        if (err) throw err; 
        res.json({ success: true, newsfeeds: newsfeeds });                 
    });
});

newsfeed.html

<!--post newsfeed-->
<form ng-submit="newsfeed.regNewsfeed(regData);">
    <label>Subject:</label>
    <input type="text" name="subject" ng-model="newsfeed.regData.subject">

    <label>Post Newsfeed</label>
    <textarea type="text" name="nw_content" ng-model="newsfeed.regData.nw_content"></textarea>

    <label>Image</label>
    <input type='file' name='image' />
    <button type="submit">Send Announcement</button>           
</form>

<!--get newsfeed-->
<div ng-repeat="person in newsfeedmanagement.newsfeeds">   
    <p>{{person.subject}}</p>
    <p>{{person.nw_content}}</p>  
</div>

Мой ожидаемый результат:

Я ожидаю увидеть изображение при получении значений из базы данных

<div ng-repeat="person in newsfeedmanagement.newsfeeds">   
   <p>{{person.subject}}</p>
   <p>{{person.nw_content}}</p>  
   <p>{{person.img}}</p>  <--display image 
</div>
...