如何从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")