Nodejs “意外令牌 .” 创建对象时
Nodejs "Unexpected token ." when creating object
我试图搜索我的问题,但我什至不知道如何问它。我看了类似的问题,但我找不到任何东西。所以这是我的问题。
我有两个js文件。第一个是常量.js它保留HTTP字段名称。这是它的代码片段
module.exports = {
USERNAME: 'username'
};
第二个文件是test.js我想在这个文件中创建一些对象。在创建对象时,我想使用常量.js文件属性名称,如下所示:
var constant = require('./constant');
var x = {
constant.USERNAME: "test"
};
console.log(x);
当我执行测试时.js我希望在控制台中看到{ username: 'test' }
,但我收到以下错误:
constant.USERNAME: "test"
^
SyntaxError: Unexpected token .
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
我不知道为什么会这样。为什么我无法创建我的对象?任何帮助将不胜感激。
注意:这两个文件位于同一文件夹中。没有模块导出错误。当我尝试console.log(constant)
它工作得很好。
JS对象文字(x = { ... }
)由name: value
对组成,其中name
是文字(JS不允许在其中使用.
),并且您不能在此处使用其他变量。为了实现我认为你想要实现的目标,我会做:
x = {};
x[constant.USERNAME] = "test";
对于文本对象表示法,则不计算属性名称。此外,constant.USERNAME
是无效的属性名称。
如果要使用 constant.USERNAME
的值作为属性名称,则需要使用"数组表示法",如下所示:
var x = {};
x[constant.USERNAME] = 'test';
你应该使用 ECMAScript 2015 中的新语法(在 nodejs 4 及更高版本中支持):
var x = {
[constant.USERNAME]: "test"
};
或坚持使用普通的旧:
var x = {};
x[constant.USERNAME] = "test";
相关文章:
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- jQuery$.getJSON抛出意外令牌
- 为什么我在下面的..of循环中得到意外令牌
- 组件中的ReactJS意外令牌
- AngularJS $http GET 请求到本地 JSON 文件返回语法错误:意外令牌]
- 巴别塔,意外令牌 (15:33) ::.
- Sencha 2.0 和 Codeigniter RESTful API 生成未捕获的语法错误:意外令牌:
- 在事件上使用 jquery 时出现意外令牌
- JSON 中位置 4 处的意外令牌<
- 意外令牌 ) 在我的代码中
- Electron 和 Babel 6 异步/等待抛出意外令牌
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- jQuery after() uncatch SyntaxError: 意外令牌 ILLEGAL
- 两级数组中的对象.导致意外令牌 [.
- 跨 ajax 请求到服务器返回的 json 对象显示错误意外令牌:
- 在React.js中创建文件上传时获得了一个奇怪的意外令牌
- 如何解决未捕获的SyntaxError:在动态创建HTML时意外令牌非法
- 传递对象数组-意外令牌[
- Java Jackson:反序列化复杂多态对象模型:JsonMappingException:意外令牌(START_OB
- Nodejs “意外令牌 .” 创建对象时