如何使用Node Js消费API时在标头中传递API密钥授权?

问题描述 投票:0回答:1

我正在使用Node J来使用API​​。由于我不知道如何使用授权的API,因此我陷入了困境。请告诉我我哪里出错了?

以下是我在执行此操作时编写的代码:

    var express = require(express);

    var app = express();

    var http = require('http');

    var myAPIKey= 'SharedAccessSignature sr=e91e0083-2c2b-47de-91bc-8c0b5f4fd3fd&sig=j9tCl4xKFjTpfNrHt%2BD4xQjVt15SxXSPM4bXj4sO6Zw%3D&skn=BMC004Connect&se=1620277640046'


    var options = {

        host:'bmc.azureiotcentral.com',

        port: 80,

        path:'/api/preview/devices',

        method:'GET',

        headers: {
            "Authorization": "Basic" + myAPIKey
          }

    };

    http.request(options, function(res){
        var body ='';

        res.on('data', function(chunk){
            body += chunk;
        });

        res.on('end', function(){
            var values = JSON.parse(body);
            console.log(values);
        });

    }).end();

并且我收到以下错误:

internal/modules/cjs/loader.js:983
  throw err;
  ^

Error: Cannot find module 'express'
Require stack:
- E:\ReactNative\try\app.js
?[90m    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)?[39m
?[90m    at Function.Module._load (internal/modules/cjs/loader.js:862:27)?[39m
?[90m    at Module.require (internal/modules/cjs/loader.js:1040:19)?[39m
?[90m    at require (internal/modules/cjs/helpers.js:72:18)?[39m
    at Object.<anonymous> (E:\ReactNative\try\app.js:1:15)
?[90m    at Module._compile (internal/modules/cjs/loader.js:1151:30)?[39m
?[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)?[39m
?[90m    at Module.load (internal/modules/cjs/loader.js:1000:32)?[39m
?[90m    at Function.Module._load (internal/modules/cjs/loader.js:899:14)?[39m
?[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)?[39m {
  code: ?[32m'MODULE_NOT_FOUND'?[39m,
  requireStack: [ ?[32m'E:\\ReactNative\\try\\app.js'?[39m ]
}
node.js api rest authorization
1个回答
0
投票

首先,在您的项目中安装express

npm i express

您可以通过在packege.json中找到它和/或在node_module目录中找到它来检查是否已安装

第二,使用字符串导入模块。

var express = require('express');

这将解决您的错误。


关于consume an authorized API。标题看起来不错,但您需要在Basic和值之间添加空格。

     headers: {
         "Authorization": "Basic " + myAPIKey
     }
© www.soinside.com 2019 - 2024. All rights reserved.