尝试使用导出.从Node.js中的另一个模块创建

Trying to use exports.create from another module in Node.js

本文关键字:js 另一个 创建 模块 Node      更新时间:2023-09-26

我想在另一个模块中使用一个模块的代码。

Module1Directory包含以下文件:

Module1.js

exports.create = function(req, res) {
     function something(){}
}

Index.js:

'use strict';
var express = require('express');
var controller = require('./Module1.js');
var router = express.Router();
router.post('/', controller.create);
module.exports = router;

Module2Directory包含以下文件:

Module2.js

var confusing = require('../Module1Directory/Module1.js');
exports.create = function(req, res){
     confusing.create.something();
}

Index.js:

'use strict';
var express = require('express');
var controller = require('./Module2.js');
var router = express.Router();
router.post('/', controller.create);
module.exports = router;

在Module2中运行的函数返回'undefined '在终端中不是函数'。怎么了?

您的create函数,但您将其视为非函数对象。您必须调用它,并且它必须返回一个具有something属性的对象:

Module1.js:

exports.create = function(req, res) {
     function something(){}
     return {something: something};     // <===
};

Module2.js

var confusing = require('../Module1Directory/Module1.js');
exports.create = function(req, res){
     confusing.create(req, res).something();
     //              ^^^^^^^^^^
};