ssl 从模块.exports调用一个函数,并给它的参数给予

x0fgdtte  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(115)

我正在构建NodeJS代码,它监听来自特定端口的请求并返回响应,下面是主要代码:

module.exports = function (port) {
    var fs            = require("fs");
    var path          = require("path");
    var express       = require('express');
    var vhost         = require('vhost');
    var https         = require('https');
    var http          = require('http');
    var bodyParser    = require("body-parser");
    
    var normalizedPath = require("path").join(__dirname, "../BlazeData/ssl/");
    
    var options = {
        key: fs.readFileSync(normalizedPath + 'spring14.key'),
        cert: fs.readFileSync(normalizedPath + 'spring14.cert'),
    };

    var app = express();
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(bodyParser.json());

    var normalizedPath = path.join(__dirname, "../WebServices");
    fs.readdirSync(normalizedPath).forEach(function(file) {
        if (file.indexOf('.js') != -1) {
            var url = file.substring(0, file.length - 3);
            app.use(vhost(url, require(normalizedPath+"/"+file).app));
            
            console.log( 'Registered Service -> %s:%d', url, port );
        }
    });
    
    if (port == 80) {
        var server = http.createServer(app).listen(port, function(){
            console.log("Create HTTP WebServices");
            console.log( 'Express server listening on port %d in %s mode', port, app.settings.env );
        });
    }
    
    if (port == 443) {
        var server = https.createServer(options, app).listen(port, function(){
            console.log("Create HTTPS WebServices");
            console.log( 'Express server listening on port %d in %s mode', port, app.settings.env );
        });
    }
    
}

我有另一个JS文件,用于运行上面的脚本,我使用var https1 = require('./clientAuthServer')来启动上面的代码,其中clientAuthServer.js是主代码的文件名,但它只是跳过了该文件中的所有内容。
如何从一个单独的文件中调用module.exports = function (port),并为函数使用的参数“port”赋值?

xzlaal3s

xzlaal3s1#

当你需要你的模块时,它会返回一个函数(由模块导出的函数),这个函数被赋值给变量https1,所以你只需要调用这个函数,因为现在它正在被存储。
最简单的方法是让require语句看起来像这样:

const https1 = require("./clientAuthServer")(parameter);

其中,parameter就是您要传递给函数的任何值。

相关问题