我正在使用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 ]
}
首先,在您的项目中安装express
npm i express
您可以通过在packege.json
中找到它和/或在node_module
目录中找到它来检查是否已安装
第二,使用字符串导入模块。
var express = require('express');
这将解决您的错误。
关于consume an authorized API
。标题看起来不错,但您需要在Basic
和值之间添加空格。
headers: {
"Authorization": "Basic " + myAPIKey
}