简体   繁体   中英

Node.js - Error: Route.post() requires a callback function but got a [object Undefined]

index.js

var multer = require('multer');
var _storage = multer.diskStorage({
  destination: function (req, file, cb) {
   cb(null, 'uploads/')
  },
  filename: function (req, file, cb) {
   cb(null, file.originalname);
  }
})
var upload = multer({ storage: _storage })


var myupload = (upload.single('userfile'), function(req, res){ 
  res.cookie('filename', req.file.originalname, {signed:true});
  res.cookie('filesize', req.file.size, {signed:true});
  var filename = 'C:/nodejs/module/'+ req.file.path;

  hash_module.hash(filename, function(hashResult) {
     res.cookie('hash', hashResult, {signed:true}); 
     res.redirect('/hash')
  })
})

module.exports.myupload = myupload;

route_info

route_info: [
    {file:'./index', path:'/myupload', method:'myupload', type:'post'} 
 ]

i want to excute 'myupload'. but i have that error.

i don't know what to do. How can i change it?

Should be something like this:

var myupload = function() {
(upload.single('userfile'), function(req, res){ 
  res.cookie('filename', req.file.originalname, {signed:true});
  res.cookie('filesize', req.file.size, {signed:true});
  var filename = 'C:/nodejs/module/'+ req.file.path;

  hash_module.hash(filename, function(hashResult) {
     res.cookie('hash', hashResult, {signed:true}); 
     res.redirect('/hash')
  })
})
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM