意外令牌{当我需要“ express-fileupload”时

时间:2019-07-08 08:06:46

标签: javascript node.js express

我正在尝试上传文件以与在Ubuntu上运行的NodeJS一起使用,但是我一直遇到错误。添加

之后
const fileUpload = require('express-fileupload');

该应用将不再编译。它会发出此错误

2|theproje | /home/asgeir/nodejs/first_test_app/node_modules/express-fileupload/lib/index.js:5
2|theproje | const {buildOptions} = require('./utilities');
2|theproje |       ^
2|theproje |
2|theproje | SyntaxError: Unexpected token {
2|theproje |     at exports.runInThisContext (vm.js:53:16)
2|theproje |     at Module._compile (module.js:374:25)
2|theproje |     at Object.Module._extensions..js (module.js:417:10)
2|theproje |     at Module.load (module.js:344:32)
2|theproje |     at Function.Module._load (module.js:301:12)
2|theproje |     at Module.require (module.js:354:17)
2|theproje |     at require (internal/module.js:12:17)
2|theproje |     at Object.<anonymous> (/home/asgeir/nodejs/first_test_app/server.js:2:20)
2|theproje |     at Module._compile (module.js:410:26)
2|theproje |     at Object.Module._extensions..js (module.js:417:10)

我猜想版本之间一定存在兼容性问题,所以我尝试将Node升级到最新版本。 Ubuntu只允许我拥有v4.2.6版本,因此我无法将其更新为较新版本。

任何对此错误的帮助,或对与旧版本NodeJS兼容的文件上传模块的建议,将不胜感激!

2 个答案:

答案 0 :(得分:1)

要在ubuntu中更新到最新的(LTS)nodejs

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

或最新版本

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs

来源:https://github.com/nodesource/distributions/blob/master/README.md

答案 1 :(得分:-1)

错误似乎是因为destructuring assignment was added in Node 6.0,由于这样的安全性和兼容性问题,您应该至少更新到节点8.x,最好更新到10.x

如果您确实无法更新,则可以尝试使用v0.2.0 of express-fileupload,因为这似乎是支持Node 4.x的最新版本,只需执行npm i express-fileupload@0.2.0