无法在NodeJS中读取未定义的属性'get'

Din*_*uja 0 javascript node.js

我正在使用NodeJS.我在运行Node Server时收到错误.我从server.js运行Node并调用status.js中存在的函数.

server.js: -

const express = require('express');
const bodyParser = require('body-parser');
const http = require('http');
const getHttpsRequests = require("./status");


const app = express();
const server = new http.Server(app);
let interval;

server.listen(3000, () => {
    console.log("Server is listening on port 3000");
});


server.on('listening', () => {
    interval = setInterval(() => {
        getHttpsRequests(); // call the function getHttpsRequests from status.js
    }, 1000);
});
Run Code Online (Sandbox Code Playgroud)

status.js: -

var https = require('https');

module.exports = function getHttpsRequests (https) {

    https.get('google.com', function (res) {
        console.log("statusCode: ", res.statusCode);
        console.log("headers: ", res.headers);

       res.on('data', function (d) {
            process.stdout.write(d);
        });

    }).on('error', function (e) {
        console.error(e);
    });
}
Run Code Online (Sandbox Code Playgroud)

我已经安装了所需的包: -

npm install express body-parser http --save
Run Code Online (Sandbox Code Playgroud)

我正在运行节点服务器,

node server.js
Run Code Online (Sandbox Code Playgroud)

它给了我错误: -

https.get('google.com', function (res) {
          ^

TypeError: Cannot read property 'get' of undefined
Run Code Online (Sandbox Code Playgroud)

Shu*_*tri 5

您期望使用https参数getHttpsRequest,但是您没有将其传递给函数,因此即使您已将其导出到外部,它也会在函数内部进行未定义.要么删除该参数,要么以不同方式命名

var https = require('https');

module.exports = function getHttpsRequests (http) {

    https.get('google.com', function (res) {
        console.log("statusCode: ", res.statusCode);
        console.log("headers: ", res.headers);

       res.on('data', function (d) {
            process.stdout.write(d);
        });

    }).on('error', function (e) {
        console.error(e);
    });
}
Run Code Online (Sandbox Code Playgroud)