导入类后如何解决SyntaxError:意外的标记=?

时间:2019-08-19 21:08:46

标签: javascript class express syntax-error

我在一个单独的JavaScript文件中创建了一个类,然后将其导入了另一个文件。但是,在导出的类中出现语法错误。

该类在未导出时不会显示错误。

Property.js (导出的类)

class Property{

    //constants declarations
    YEAR_AMOUNT = 10;
    PERIOD_AMOUNT = 120;

    //Properties
    closingCosts;
    initialInvestment;

    //arrays declarations
    //income
    adjustedRent= new Array();
    adjustedOtherRevenue = new Array();
    grossRevenue= new Array();
    effectiveRevenue= new Array();

constructor(title, address, askPrice, muniLandEval, muniBuildEval, notes){
 this.title=title;    
    this.address=address;
    this.askPrice=askPrice;
    this.muniLandVal = muniLandEval;
    this.muniBuildVal = muniBuildEval;
    this.notes=notes
}

//other methods
}

export default class Property

propertyManager.js 中(导入)

//handle property (calculations, creation, save)
const express = require('express');
const router  = express.Router();
const Property = require('./Property.js');

router.post('/', (req, res) => {

    //create a Property
    const property = new Property(req.body.title,
        req.body.address,
        req.body.askPrice,
        req.body.muniLandVal,
        req.body.muniBuildVal,
        req.body.notes
    );
})

module.exports = router;

有问题的错误

D:\ImmoTuul\RE_Analysis_\RE_MVP\server\routes\api\Property.js:4
    YEAR_AMOUNT = 10;
                ^

SyntaxError: Unexpected token =
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (D:\ImmoTuul\RE_Analysis_\RE_MVP\server\routes\api\propertyManager.js:4:18)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)

我希望能够在 propertyManager 文件中使用该类及其构造函数。

2 个答案:

答案 0 :(得分:3)

如果您发布的正是您的Property.js文件,则好像您有一个额外的class关键字。

export default class Property; ///此处的类无效

export default Property; //应该是这个

除非您要在同一行中导出和声明(这不是您显示的内容)

答案 1 :(得分:0)

我通过遵循@Valijon建议并使用

解决了此问题
module.exports = Property;