Index.js 文件连续给出“JSON 文本不是以数组开头”,尽管被格式化为数组

Posted

技术标签:

【中文标题】Index.js 文件连续给出“JSON 文本不是以数组开头”,尽管被格式化为数组【英文标题】:Index.js file continuously gives "JSON text did not start with array" despite being formatted as an array 【发布时间】:2018-02-15 03:59:38 【问题描述】:

我有一个由 heroku 托管的解析服务器,它有一个用于其配置的 index.js 文件。我想使用 Mailgun 为用户设置请求密码重置的功能,我已经按照this answer 设置了配置文件,如下所示:

var api = new ParseServer(
  appName: 'App Name',
  publicServerURL: 'https://<name>.herokuapp.com/parse',
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'myAppId',
  masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it $
  serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',  // Don't$
  liveQuery: 
    classNames: ["Posts", "Comments"] // List of classes to support for query s$
  ,
  push: JSON.parse(process.env.SERVER_PUSH || ""),
  verifyUserEmails: true, //causing errors
  emailAdapter:  //causing errors
    module: 'parse-server-simple-mailgun-adapter',
    options:  
             fromAddress: 'parse@example.com',
             domain: '<domain>', 
             apiKey: '<key>', 
           
  
);

但是,由于verifyUserEmailsemailAdapter,此代码不起作用。删除它们会删除“JSON 文本不是以数组开头”错误。添加其中任何一个都会导致引发错误。不过,我不知道为什么,因为我没有看到任何明显的原因说明它们如何没有正确设置在数组中? 除了将它们放在配置文件中之外,我还需要在 heroku 中设置相应的配置变量吗?我考虑过这个,但是appNamepublicServerURL不是这样设置的,不要报这个错误。

【问题讨论】:

【参考方案1】:

emailAdapter.options.apiKey 最后不需要逗号,因为它的最后一个元素是 JSON。

当您不正确地包含它时,您也在 verifyUserEmails 末尾留下逗号,我不会感到惊讶。

options:  
             fromAddress: 'parse@example.com',
             domain: '<domain>', 
             apiKey: '<key>', 
           

这不是有效的 JSON,因为 apiKey 行的末尾有一个逗号。 JSON 对象中的最后一项没有逗号。

【讨论】:

对不起,我在 verifyUserEmails 末尾不正确地包含逗号是什么意思? 将我的答案编辑得更明确。【参考方案2】:

对于反复遇到此问题的任何人,我已经弄清楚出了什么问题。尽管错误通知我我的 JSON 格式不正确,但事实证明 module 命名错误。根据this post,更新后的模块已重命名为'@parse/simple-mailgun-adapter'。在确保我在本地存储库中运行了npm install --save @parse/simple-mailgun-adapter 之后,将其插入index.js,解决了这个问题。

【讨论】:

以上是关于Index.js 文件连续给出“JSON 文本不是以数组开头”,尽管被格式化为数组的主要内容,如果未能解决你的问题,请参考以下文章

Webpack 无法在我的 js 文件中识别我的 JSX 语法

React JS index.js 文件如何联系 index.html 以获取 id 引用? [复制]

如何在单独的js文件里调用jquery

如何在另一个 index.js 文件上导出 react-slick?

如何将 lib.js 文件中的 Discord.js 函数调用到 index.js 中?

使用汇总而不是一个庞大的 index.js 文件导出单个组件?