2016-11-05 2 views
0

Ich habe einen Knoten erholsame API zu entwickeln. Ich muss einige Bilddateien hochladen und Dateinamen in der Datenbank speichern. wie geht es? das ist mein codeNode restful API, Datei hochladen und Speichern von Dateinamen in der Datenbank vor dem Beitrag

var express = require('express'); 
var multer = require('multer') 
var upload = multer({ dest: 'uploads/' }) 
var router = express.Router(); 
var path = require('path'); 

var storage = multer.diskStorage({ 
    destination: function (req, file, callback) { 
    callback(null, './uploads'); 
    }, 
    filename: function (req, file, callback) 
    { 
    callback(null, Date.now('nano') +   path.extname(file.originalname)); 
    } 
}); 
var upload = multer({ storage : storage }).array('userPhoto',2); 

// Models 
var Car = require('../models/car'); 

// Routes 
Car.methods(['get','put','post','delete']); 

// before file uplod part 
Car.before('post',function(req,res,next) 
{ 
    var car_photos = []; 
    upload(req,res,function(err) 
    { 
     if(err) 
     { 
      return res.end("Error uploading file."); 
     } 
     else 
     { 
      for(var i = 0; i < req.files.length; i++) 
      { 
       car_photos.push(req.files[i]['filename']); 
      } 
     } 
    }); 
    req.body.car_photos = car_photos; 
    next(); 
}); 
Car.register(router,'/car'); 
module.exports = router; 

Dieses car_photos-Array ist null. Wie ich dieses Array meine Datenbank speichern. bitte hilfe.

Car.before('post',function(req,res,next) 
{ 
    var car_photos = []; 
    upload(req,res,function(err) 
    { 
     if(err) 
     { 
      return res.end("Error uploading file."); 
     } 
     else 
     { 
      for(var i = 0; i < req.files.length; i++) 
      { 
       car_photos.push(req.files[i]['filename']); 
      } 
     } 
    }); 
    req.body.car_photos = car_photos; 
    next(); 
}); 

Antwort

2

req.body.car_photos = auto_fotos; next();

Diese Zeilen sollten in der Upload-Funktion Rückruf sein. Im else-Block nach der for-Schleife.

+0

Thanx es funktioniert. –

+0

Ist es möglich, vollständige Antwort mit Modellen selbst zu geben –

0

Dieses Beispiel gilt für alle mit dem Bibliotheksknoten-geruhsamen
https://github.com/baugarten/node-restful

Für das Modell ein Feld hinzufügen, mit: bro

car_photos: Array 

var express = require('express'); 
var multer = require('multer') 
var upload = multer({ dest: 'uploads/' }) 
var router = express.Router(); 
var path = require('path'); 

var storage = multer.diskStorage({ 
    destination: function (req, file, callback) { 
    callback(null, './uploads'); 
    }, 
    filename: function (req, file, callback) 
    { 
    callback(null, Date.now() + path.extname(file.originalname)); 
    } 
}); 
var upload = multer({ storage : storage }).array('car_photos',2); 

// Models 
var Car = require('../models/car'); 

// Routes 
Car.methods(['get','put','post','delete']); 

// before file uplod part 
Car.before('post',function(req,res,next) 
{ 
    var car_photos = []; 
    upload(req,res,function(err) 
    { 
     if(err) 
     { 
      return res.end("Error uploading file."); 
     } 
     else 
     { 
      for(var i = 0; i < req.files.length; i++) 
      { 
       car_photos.push(req.files[i]['filename']); 
      } 
      req.body.car_photos = car_photos; 
      next(); 
     } 
    }); 
}); 
Car.register(router,'/car'); 
module.exports = router; 
Verwandte Themen