Используя пример на Примеры express-fileupload
<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 let sampleFile = req.files.sampleFile; ^^^
SyntaxError: объявления с блочной областью видимости (let, const, function, class) еще не поддерживаются вне строгого режима
Я уверен, что что-то простое. Даже вставив сюда код, оператор let будет изолирован.
Возможный дубликат Объявления с блочной областью видимости еще не поддерживаются вне строгого режима
Это сработало. Я использую nodejs -v v4.8.2. К сожалению, теперь я получаю сообщение об ошибке: не удается найти модуль 'express-fileupload'. Почему эти примеры для разработчиков так часто не работают.
Наконец-то я получил хорошее обновление. # Используем Debian как root curl -sL deb.nodesource.com/setup_10.x | bash - apt-get install -y nodejs





В объявлении с блочной областью видимости ключевое слово let сообщает NodeJS, что объявляемая вами переменная будет существовать только в самом внутреннем блоке управления кода. Это может быть функция или набор фигурных скобок внутри функции, что чаще всего встречается в циклах. Он не поддерживается в ранних версиях node. Изучите инструмент 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, если бы заботились об этой зависимости только в среде разработки, а не в производственной среде.
Вы используете относительно старую версию Node.js. Попробуйте обновить его или добавьте это в качестве первой строки в свой скрипт:
'use strict';(включая кавычки)