如何从node.js中的一个文件调用JSfunction?

我是新来的JS,并试图将代码分成多个模块。 我正在运行nodejs,我在这里感到困惑,为什么它抱怨没有定义pathChecker。 任何想法呢?

<

const http = require('http'); const parseUrl = require('parseurl'); const path = require('path'); http.createServer( function (req, res) { try { // this is library function var pathName = decodeURIComponent(parseUrl(req)); // create a literal validateFile to validate the path var validateFile = new pathChecker(pathName); // This is an engine to validate the path problems related to security, existence etc. validateFile.pathCheck(); if(validateFile.error === true) { res.statusCode = validateFile.statusCode; res.end(validateFile.ErrorMsg); return; } } catch(err) { res.statusCode = err.status || 500; res.end(err.message); } }).listen(4000); 

我有另一个文件叫

errorHandler.js

 function pathChecker(path) { this.error = true; this.path = path; this.statusCode = 500; this.ErrorMsg = "Internal Server Error"; this.pathCheck = function() { if(!path) { this.statusCode = 400; this.ErrorMsg = 'path required'; this.error = true; } else{ this.statusCode = 200; this.ErrorMsg = undefined; this.error = false; } } }; 

在运行这个,我得到的输出

pathChecker没有定义

您需要导出和导入文件作为模块。 你这样做是这样的:

 // File A.js function A() { } module.exports = A; // File B.js var A = require("./A"); A(); 

您需要在errorHandler.js文件中导出函数。

 function pathChecker(path) { ... } module.exports = pathChecker; 

然后其导入您的主文件

 const pathChecker = require("./errorHandler")