admin 管理员组

文章数量: 1184232

connect

我在使用 connect-multiparty 解析请求并尝试在路由中获取文件流时遇到问题。但是,我总是在 req.files 中得到空对象。我使用的代码如下:

in router.js:
    import express from 'express';
    var routers = express.Router();
    import { createRequire } from "module";
    import * as fs from 'fs';
    import * as path from 'path';
    import multipart from 'connect-multiparty';


var multipartMiddleware = multipart();
/* POST home page. */
routers.post('/:name', multipartMiddleware, function (req, res, next) {
  console.log("system in pageName: " + req.params.name);
  console.log(req.body, req.files);
  var filename = req.files.files.originalFilename || path.basename(req.files.files.path);
  res.render('fileUploading', { title: 'After Uploading: Upload success' });
});


in ejs:
    <form action="/files/handleQmlFiles" method="post" enctype="multipart/form-data" id="frmUpload">
      <input type="file" id="uploadFileInput" />
      <div class="row">
        <div class="col-md-6">
          <input type="submit" value="Upload file" name="submit">
        </div>
      </div>
    </form>
    
in main.js:
    import express from 'express';
    import compression from 'compression';
    import { fileURLToPath } from 'url';
    import { dirname } from 'path';
    import { routers } from './routes/router.js';
    import cookieParser from 'cookie-parser';
    import helmet from "helmet";
    import session from "express-session";
    import * as fs from 'fs';
    import bodyParser from "body-parser";

    // HTTP compression
    app.use(compression());
    app.use(cookieParser());
    app.use(helmet());
    app.use(express.static(cfg.dir.static));
    app.use(bodyParser.json())
    app.use(bodyParser.urlencoded({ extended: true}));

    app.use('/files',routers);
    // start server
    // http://localhost:3000/files/OK
    app.listen(cfg.port, () => {
      console.log(`Example app listening at http://localhost:${cfg.port}`);
    });

有什么方法可以确定问题出在哪里,或者有其他方法可以在节点 16.13.2 版本中上传文件,非常感谢。

回答如下:

本文标签: connect