JSON中的意外令牌v在位置0 Node.js

时间:2018-10-14 16:49:55

标签: javascript node.js firebase firebase-admin

我正在应用引擎灵活的环境中用php开发代码。我正在尝试为Firebase设置SDK Admin(Web版)。

当前,我正在努力处理以下代码:

$.ajax({

        type: 'GET',
        url: "prueba.js",
        dataType: 'json'

    }).done(function(res){

        console.log("Todo bien!");

    }).fail(function(jqXHR,textStatus,err){

        console.log(err);

    }); 

上述代码正在通过AJAX调用以下代码(即“ prueba.js”):

var admin = require(firebase-admin');
var serviceAccount = require('path/to/json-key.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: 'https://<database>.firebaseio.com'
});

这些代码引发异常:

SyntaxError: Unexpected token v in JSON at position 0
    at JSON.parse (<anonymous>)
    at n.parseJSON (jquery.min.js:4)
    at ub (jquery.min.js:4)
    at x (jquery.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery.min.js:4)

...最后,但并非最不重要的是,文件夹和文件的组织:

  

包含firebase-admin的'node_modules'与index.js,package.json和package-lock.json一起位于根文件夹('web')

     

Prueba.html和prueba.js位于路径'web / asg / trm / admin'

“ p”文件夹中的

package.json包含以下代码:

{
  "name": "web",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "firebase-admin": "^6.0.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
相反,

'index.js'不包含任何代码。

我已经测试了以下内容:

  • 在“ require”(在“ prueba.js”中)中,我一直在为“ node_modules”文件夹使用不同的位置(还直接指向“ firebase-admin”中包含的“ package.json”) 。

由于我在Node.js方面的短暂经验,最近两天我一直在努力使收支平衡,但没有成功。因此,任何形式的帮助都将受到欢迎!

非常感谢!

1 个答案:

答案 0 :(得分:2)

    url: "prueba.js",
    dataType: 'json'

您要的是JavaScript文件,但要让jQuery将其解析为JSON。

这是该JavaScript文件的第一行:

var admin = require(firebase-admin');

…其中的第一个字符是v,被报告为意外令牌。 JSON不能以v开头,但是如上所述,您拥有的不是JSON。

它也不是客户端JavaScript,它看起来像是打算在Node.js上运行的服务器端程序的一部分,

由于某种原因,您根本没有使用Node.js运行它,而是将源代码传递到了Web浏览器。

您可以将服务器端程序编写为Web服务(update很流行),然后使用Node.js运行它。然后,应将url设置为以此创建的端点的URL。