【问题标题】:Node restful api, File upload and save file names in database before post节点restful api,文件上传并在发布前将文件名保存在数据库中
【发布时间】:2017-04-30 22:58:39
【问题描述】:

我已经开发了一个 node restful api。我需要上传一些图像文件并将文件名保存到数据库中。怎么做。这是我的代码

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;

此 car_photos 数组为空。我如何将这个数组保存到我的数据库中。请帮忙。

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();
});

【问题讨论】:

    标签: node.js rest express node-rest-client


    【解决方案1】:

    req.body.car_photos = car_photos; 下一个();

    这些行应该在上传函数回调中。在 for 循环之后的 else 块中。

    【讨论】:

    • 是否可以用模型本身发布完整答案
    【解决方案2】:

    此示例适用于使用库 node-restful 的任何人
    https://github.com/baugarten/node-restful

    为模型添加一个字段:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 2013-08-08
      • 2014-04-09
      相关资源
      最近更新 更多