15

我以“node firebasedb.js”开始我的节点。我的 firebasedb.js 包含以下代码:

var admin = require("firebase-admin");

var serviceAccount = require("service_account.json");

// Initialize Firebase
var config = {
    credential: admin.credential.cert(serviceAccount),
    apiKey: "<api key>",
    authDomain: "<auth domain>",
    databaseURL: "<database url>",
    storageBucket: "<storage bucket>",
};

admin.initializeApp(config);

当我运行节点时,我位于 .json 文件所在的目录中。但它说

Error: Cannot find module 'service_account.json'
4

2 回答 2

43

您缺少所需路径的相对部分。也就是说,你应该做这样的事情:

var serviceAccount = require("./service_account.json");

如果它不是相对路径,require将寻找node_modules名为service_account.json.

于 2017-04-02T08:17:51.600 回答
3

问题是 TypeScript 编译器不知道json文件。您可以通过将以下声明添加到您的类型文件中来告诉编译器它们。

declare module "*.json" {
  const value: any;
  export default value;
}

然后,您可以使用以下命令导入 json:

import * as serviceAccount from './service-key.json';

如果您还没有打字文件设置,您将需要创建一个,然后tsconfig.json通过将其添加到includeor来告诉它files

  "include": [
    "./index.d.ts"
  ],
于 2017-08-15T13:13:28.813 回答