使用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”语句也是隔离的。
答案 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
。