【问题标题】:Unexpected token v in JSON at position 0 Node.js位置 0 Node.js 的 JSON 中的意外令牌 v
【发布时间】:2019-03-19 04:25:56
【问题描述】:

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

目前,我只是在为以下代码苦苦挣扎:

$.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)

...最后但同样重要的是,文件夹和文件的组织:

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

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

'web' 文件夹中的 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 方面的短暂经验,过去两天我一直在努力维持生计,但没有成功。因此,任何善意的帮助都将受到欢迎!

提前非常感谢!

【问题讨论】:

  • 分享你的json文件,可能你的json文件结构会出错。
  • 您正试图以 JSON 格式读取 JavaScript 代码文件,但事实并非如此。您需要在 Node 中设置一个网络服务器才能运行该代码;它不会在浏览器中运行。它抱怨的vvar的第一个字母。
  • ^^ 邪猴说的。另外,另外,您有一个错字,缺少开头'var admin = require(firebase-admin'); 这将完全阻止代码运行。

标签: javascript node.js firebase firebase-admin


【解决方案1】:
    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 服务(express library 在这方面很受欢迎),然后使用 Node.js 运行它。然后,您应该将 url 设置为您使用它创建的端点的 URL。

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 2021-09-12
    • 2018-10-17
    相关资源
    最近更新 更多