Articles of 线程

使用Multer上传文件,而不知道他们的字段名

看完这篇文章后: http : //lollyrock.com/articles/express4-file-upload/ 我已经意识到,当你不知道正在上传的表单字段的名称时,Multer曾经允许file upload。 例如,如果您查看文章的“使用Multer”部分,您会发现在调用app.use()时,作者不会使用.single() .array()或app.use() 。 如果你使用当前版本的Multer,你会得到TypeError: app.use() requires middleware functions错误TypeError: app.use() requires middleware functions 。 虽然我对如何使用.single() .array()或.array()有一个小小的想法,但是我目前的项目需要我发送一个非特定数量的文件到我的服务器(可能是一系列的.png或.log文件)。 因此,我不知道字段名称是什么。 在文章(0.1.6)中使用Multer的版本很容易,但在当前版本的Multer(1.0.3)中尝试使用它时似乎是不可能的,因为您需要指定表单字段名称。 或者,在网上findMulter的完整指南一直是一个挑战,因为最好的一个似乎是GitHub回购的自述,而且似乎缺乏。 也许我正在寻找的答案将在某个地方的指导。 谢谢!

当Multer的文件过大时如何向客户端发送响应

我正在使用NodeJs Multer上传文件。 当文件用户尝试上传时,我需要将响应发送回客户端。 问题是, onFileSizeLimit只有文件作为参数,我不知道如何发送响应客户端。 我需要做的是基本如下所示: app.use('/users/gyms/upload-logo', multer({ // other settings here then: onFileSizeLimit: function (file) { // but res (response) object is not existing here res.json({ message: "Upload failed", status: MARankings.Enums.Status.FILE_TOO_LARGE // status: -6 }); } }); 在那里存在的res对象剂量,我想知道什么是最好的方式发送某种types的响应客户端。

在快速路由器内使用Muller进行file upload

我使用node.js和Express构build了一个可用的REST-API。 现在我需要一个file upload端点,它接受上传的文件并处理它们。 我正在使用Express路由器和一些身份validation中间件。 server.js(节选) var router = express.Router() app.use("/api", router) […] router.use(function(req, res, next) { //Authentification middleware […] next() }) router.route("/upload") .post(function(req, res){ //upload logic }) 我如何使用multer作为req.file (或如此)提供上传的文件,但仅在/ api /上传和authed用户?

事件驱动和基于线程的服务器系统有什么区别?

Node.js是一个事件驱动的I / O,它是一个单线程的服务器,对callback起作用,永远不会阻塞主线程。 但是它是如何处理非阻塞I / O的呢? 如果它确实容易pipe理,为什么不基于线程的系统pipe理呢? 不像其他线程(在单个事件驱动线程之后)像基于线程的工作? 如果其他线程表示工作者(在事件驱动线程后面)忙碌,那么它仍然可以不受阻塞地处理工作? 基于线程的模型将任务分配给线程,如果没有空闲线程,则阻止新任务。 如果一个线程可以像处理每个I / O而没有阻塞的事件驱动的单线程一样处理多个任务,那么为什么基于线程的系统在忙线程中不使用这种策略来阻塞I / O。 我想知道事件驱动和基于线程的服务器系统有什么区别( 优点/缺点 )。

使用app.use的configuration器会返回TypeError

我正在尝试在我的app.js文件(使用node.js / express)中configurationmulter以允许用户上传图像。 我在app.js中有以下代码: //various require statements for passport, cookie parser, etc.. var multer = require('multer'); var app = express(); app.use(multer({dest:'./uploads/'})); 当我尝试运行应用程序时,我得到TypeError: app.use() requires middleware functions 我知道这个问题可能需要一些关于我的应用程序的上下文,所以请让我知道是否需要额外的信息。 谢谢 编辑:更多来自app.js的代码: var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var bodyParser = require('body-parser'); var methodOverride = require('method-override'); var session […]

multer – req.file始终未定义

我已经看了很多同样的问题的答案,但我还没有find一个工作的解决scheme。 我试图做一个Web应用程序,您可以上传文件使用快递和MULTER,我有一个问题,没有文件正在上传和REQ.FILE总是未定义。 我的代码如下 'use strict'; var express = require('express'); var path = require('path'); var multer = require('multer') var upload = multer({ dest: 'uploads/' }) var app = express(); require('dotenv').load(); app.use(express.static(path.join(__dirname, 'main'))); app.post('/upload', upload.single('upl'), function (req, res, next) { // req.file is the `avatar` file // req.body will hold the text fields, if there were any […]

使用multer上传文件时,req.files未定义

我正在尝试在Express.js 4中构build一个上传图像的Node.js应用程序。 我决定使用multer模块,但不能通过multer访问上传​​的文件。 这是我正在使用的代码。 我将其限制在那些我认为相关的部分。 玉代码: form(method="POST", action="createPost", enctype="multipart/form-data") input(type="file", name="photo") br input(type="submit" value="upload") 在路线/ admin.js中: var express = require('express'); var multer = require('multer'); var router = express.Router(); var upload = multer({dest: './uploads/'}); router.post('/createPost', upload.single('photo'), function(req, res, next) { console.log('files:', req.files); console.log('body:', req.body); // more code } 输出: files: undefined body: {} 该文件存储在uploads文件夹中,但是我无法访问req.files信息。 谁能帮我?