需要帮助了解节点JS语法错误

时间:2017-04-12 16:03:10

标签: node.js ubuntu ubuntu-16.04

任何人都可以帮我理解基于下面附带屏幕截图的语法错误吗?

Syntax Error

我的脚本应该访问给定的JSON并返回特定的值,但不知怎的,它会返回此错误。

修改1

我使用虚拟JSON测试了我的脚本,并且脚本没有返回任何错误,所以我怀疑我原来的JSON可能会出问题。这是我的JSON。

AvaSpec

修改2

这是我运行的脚本会产生错误。

Application.Run

{ "og_object": { "id": "1192199560899293", "description": "Hi everyone I have an important announcement to make. So ever since Penny started school, I've been having mixed feelings. \u00a0Besides having a bit of space to myself to breathe and rest my brain/legs, I'm actually a bit bittersweet cos my little baby, who used to sleep at weird hours and gobble puree", "title": "Fighter and Penny's new sibling", "type": "article", "updated_time": "2017-04-12T01:17:57+0000" }, "share": { "comment_count": 0, "share_count": 109 }, "id": "http://fourfeetnine.com/2017/03/05/fighter-and-pennys-new-sibling/" } 是包含我在编辑1

中粘贴的JSON的文件

2 个答案:

答案 0 :(得分:0)

感谢@Jordan建议。错误确实是由于错误的文件扩展。将文件扩展名从.txt更改为.json后,语法错误消失了。

答案 1 :(得分:0)

var objects = require('./output.txt');

require()函数属于module loading system。尽管名称,它实际上可以加载几种类型的文件和目录,而不仅仅是节点模块。根据文档中显示的high-level algorithm in pseudocode

  

require(X)

     

如果X以' ./'开头;或者' /'或' ../&# 39;

     

一个。 LOAD_AS_FILE(Y + X)

     

[...]

     

LOAD_AS_FILE(X)

     
      
  1. 如果X是文件,将X加载为JavaScript文本。 STOP
  2.   
  3. 如果X.js是文件,请将X.js作为JavaScript文本加载。 STOP
  4.   
  5. 如果X.json是一个文件,请将X.json解析为JavaScript对象。 STOP
  6.   
  7. 如果X.node是文件,请将X.node加载为二进制插件。 STOP
  8.   

由于您获得 SyntaxError ,因此output.txt不包含有效的JavaScript代码。

如果您确实要加载JSON,则需要通过将文件重命名为output.json来强制执行第3项。