node.js基本文件上传expess-fileupload错误

时间:2018-11-29 14:44:56

标签: node.js express

使用express-fileupload Examples上的示例

<pre>   
const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();

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

app.post('/upload', function(req, res) {
 if (Object.keys(req.files).length == 0) {
 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;

// Use the mv() method to place the file somewhere on your server
sampleFile.mv('/somewhere/on/your/server/filename.jpg', function(err) {
 if (err)
 return res.status(500).send(err);

 res.send('File uploaded!');
 });
 }); <code>

我收到此错误

nodejs server1.js /var/www/html/express/server1.js:14   让sampleFile = req.files.sampleFile;   ^^^

SyntaxError:严格模式之外尚不支持块范围的声明(let,const,函数,类)

我敢肯定,这很简单。即使将代码粘贴到此处,“ let”语句也是隔离的。

1 个答案:

答案 0 :(得分:0)

在块范围的声明中,关键字let告诉NodeJS,您声明的变量将仅存在于最内部的代码控制块中。这可能是一个函数或一个函数中的一组花括号,在循环中最常见。早期版本的节点不支持此功能。查看nvm工具,以了解如何根据需要在不同版本的节点之间切换。通常,您将需要使用最新的长期支持版本。

cannot find module上,您正在寻找npm工具,该工具用于安装节点模块。它找不到express-fileupload,因此您要从npm安装该文件。您可以通过以下方式安装模块:

npm install express-fileupload

或使用简写npm i express-fileupload

如果您碰巧使用的是npm的较旧版本,则最好使用

npm i express-fileupload --save

这会将您的项目依赖于express-fileupload程序包的内容存储在一个名为package.json的文件中,以便npm稍后知道此内容以进行依赖项管理,例如重新安装程序包,审核或安装。部署到其他系统时的依赖关系。较新版本的npm会自动执行此操作。如果您只关心开发环境而不是生产环境中的这种依赖性,则可以使用npm i express-fileupload --save-dev