我有一个payments
目录,其中包含两个文件:constants.js
和controller.js
constants.js
:
export const STRIPE_CONSTANTS = {
USD: 'usd',
SKU: 'sku',
};
export const SKU_CONSTANTS = {
first_sku: 'sku_abc123',
};
并在我的controller.js
中导入,但出现错误:
import { STRIPE_CONSTANTS, SKU_CONSTANTS } from './constants';
(函数(导出,需求,模块,__ filename,__ dirname){从'./constants'导入{STRIPE_CONSTANTS,SKU_CONSTANTS}; ^
SyntaxError:意外令牌{
我在这里做错了什么?谢谢。
答案 0 :(得分:4)
看起来您正在使用尚未实现ES modules
的节点运行时执行代码。 (这将在浏览器上运行,但是如果您首先使用翻译器将ES6转换为ES5)
您需要使用require
导入模块,并使用exports
导出模块。
ES modules
已在节点8.5.0
和更高版本中实现,但需要注意的是,文件名应以.mjs
结尾,以免破坏现有代码。
constants.js
const STRIPE_CONSTANTS = {
USD: 'usd',
SKU: 'sku',
};
const SKU_CONSTANTS = {
first_sku: 'sku_abc123',
};
exports.STRIPE_CONSTANTS = STRIPE_CONSTANTS;
exports.SKU_CONSTANTS = SKU_CONSTANTS;
// If you want to export it as an object instead of that you
// can use destructing when importing them you can use `module.exports`
// instead
module.exports = {
STRIPE_CONSTANTS,
SKU_CONSTANTS
}
controller.js
const constants = require('./constants');
const STRIPE_CONSTANTS = constants.STRIPE_CONSTANTS;
const SKU_CONSTANTS = constants.SKU_CONSTANTS;
// If constants was exported as an object using `module.exports`
// you can use destructing instead
const { STRIPE_CONSTANTS, SKU_CONSTANTS } = require('./constants');