我正在构建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”赋值?
1条答案
按热度按时间xzlaal3s1#
当你需要你的模块时,它会返回一个函数(由模块导出的函数),这个函数被赋值给变量
https1
,所以你只需要调用这个函数,因为现在它正在被存储。最简单的方法是让require语句看起来像这样:
其中,
parameter
就是您要传递给函数的任何值。