代码之家  ›  专栏  ›  技术社区  ›  pigfox

从4种不同的导出方式意外导出令牌

  •  0
  • pigfox  · 技术社区  · 5 年前

    我的环境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模块的方法,但所有尝试都失败,并出现相同的错误:

    语法错误:意外的令牌导出

    有什么建议吗?

    0 回复  |  直到 5 年前
        1
  •  0
  •   Pedro Mendonça    5 年前

    我想你能做到

    module.exports = { cors: cors }
    

    原因是您必须导出一个对象和CORS只是一个函数,所以您可以将该函数放在一个对象内并导出它。

    或者速记

    module.exports = { cors }
    

    不过,如果你想要更高级的东西,我建议你去看看 esm 你可以这样做:

    export default cors
    

    这是一种较新的语法,尚未得到节点的正式支持,但可以与一些安装工具(如ESM或Webpack)一起使用。