首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在node+express中使用文件上传模块multer

在node+express中使用文件上传模块multer
EN

Stack Overflow用户
提问于 2015-07-30 14:43:02
回答 2查看 2.1K关注 0票数 0

我试图实现文件上传在我的快递4为基础的应用程序。我遵循本教程:https://codeforgeek.com/2014/11/file-uploads-using-node-js/

在该守则中:

代码语言:javascript
复制
var express = require('express');
var multer = require('multer');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

app.use(multer({
    dest: './uploads/',
    rename: function (fieldname, filename) {
        return filename + Date.now();
    },
    onFileUploadStart: function (file) {
        console.log(file.originalname + ' is starting ...')
    },
    onFileUploadComplete: function (file) {
        console.log(file.fieldname + ' uploaded to  ' + file.path)
        done = true;
    }
}));

线app.use({

导致错误:

代码语言:javascript
复制
C:\Development\HERA\hera_node\node_modules\express\lib\application.js:206
    throw new TypeError('app.use() requires middleware functions');
          ^
TypeError: app.use() requires middleware functions
    at EventEmitter.use (C:\Development\HERA\hera_node\node_modules\express\lib\
application.js:206:11)
    at Object.<anonymous> (C:\Development\HERA\hera_node\app.js:17:5)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

可能是什么原因?我在节点和快递方面很新。requires middleware functions的解释没有告诉我任何事情。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-31 12:25:12

本教程使用的是较早版本的Multer (确切地说是0.1.6),其中当前版本的Multer为1.0.1。您需要在这些版本之间设置和使用Multer的方式发生了变化,这就是教程代码不再适用于最新的Multer的原因。

一个快速的解决方法是安装旧版本:

代码语言:javascript
复制
$ npm install multer@0.1.6

然而,在某个时候,您可能想要转移到最新版本的穆特。

票数 2
EN

Stack Overflow用户

发布于 2018-02-28 07:54:18

//运行java-script文件并打开视图页,然后上传文件并提交//

  • js文件

代码语言:javascript
复制
const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();
let date = require('date-and-time');

// default options
app.use(fileUpload());

app.post('/upload', function(req, res) {
  if (!req.files)
    return res.status(400).send('No files were uploaded.');

  // The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
  let sampleFile = req.files.sampleFile;
  let now = new Date();
  var now1 = date.format(now, 'YYYY_MM_DD_HH_mm_ss');
  var desired = now1.replace(/[^\w\s]/gi, '')
  var name = now1 + "_" + req.files.sampleFile.name;
  // Use the mv() method to place the file somewhere on your server
  sampleFile.mv("./../nodejs_image_upload_example/Images/" + name, function(err) {
    if (err)
      return res.status(500).send(err);

    res.send('File uploaded!');
  });
});


app.listen(2000, function(a) {
  console.log("Listening to port 2000");
});
代码语言:javascript
复制
<html>

<body>
  <form ref='uploadForm' id='uploadForm' action='http://localhost:2000/upload' method='post' encType="multipart/form-data">
    <input type="file" name="sampleFile" />
    <input type='submit' value='Upload!' />
  </form>
</body>

</html>

`

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31726912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档