【问题标题】:Unexpected token export from 4 different export ways来自 4 种不同导出方式的意外令牌导出
【发布时间】:2019-04-29 08:13:55
【问题描述】:

我的环境,Node.js 是 v11.10.1,npm 是 6.9.0。

app.js 中失败的代码。

const cors = require("./config/cors");

这里是 config/cors.js

const cors = (req, res, next) => {
  // Website you wish to allow to connect
  res.setHeader("Access-Control-Allow-Origin", "*");

  // Request methods you wish to allow
  res.setHeader(
    "Access-Control-Allow-Methods",
    "GET, POST, OPTIONS, PUT, PATCH, DELETE"
  );

  // Request headers you wish to allow
  res.setHeader(
    "Access-Control-Allow-Headers",
    "Origin,X-Requested-With,content-type"
  );

  // Pass to next layer of middleware
  next();
};

//export default cors;
//export {cors as default}
//export {cors};
//module.exports = cors;
//module.exports = { cors }
module.exports = { cors: cors }

我尝试了六种不同的导出 cors 模块的方法,但所有尝试都失败并出现相同的错误:

SyntaxError: 意外的令牌导出

有什么建议吗?

【问题讨论】:

    标签: node.js cors export


    【解决方案1】:

    我觉得你可以的

    module.exports = { cors: cors }
    

    原因是你必须导出一个对象,而 cors 只是一个函数,所以你可以将函数放在一个对象中并导出它。

    或者简写

    module.exports = { cors }
    

    但是,如果您想要更高级的东西,我建议您查看esm,这将允许您这样做:

    export default cors
    

    这是一种较新的语法,尚未被 node 官方支持,但可以与一些设置工具一起使用,例如 esm 或 webpack

    【讨论】:

    • 嗨佩德罗,我尝试了你的建议并得到了同样的错误。我还编辑了我最初的问题以获取更多背景信息。
    • 我刚刚用这个配置 gist.github.com/pedsm/aa378942e243ea1ed69a6362ef68f400 对其进行了测试,它似乎在节点 11 上工作得很好。如果你在这个 gist 中创建两个文件并运行 main.js,你应该会看到正在导入的函数
    猜你喜欢
    • 2018-02-15
    • 2021-05-24
    • 2016-04-27
    • 1970-01-01
    • 2017-03-05
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多