gpt4 book ai didi

node.js - 尝试在 Node js 中扩展模块时出现错误

转载 作者:太空宇宙 更新时间:2023-11-04 00:12:25 26 4
gpt4 key购买 nike

我正在尝试从一个模块扩展另一个模块。

这是我名为 add.js 的基本模块的代码。

var exports=module.exports={};
exports.tutorial=function()
{
console.log("Guru99 Tutotial")
}

名为child.js的扩展模块

var Tutor=require('./add.js');
exports.NodeTutorial=function()
{
console.log("Node Tutorial")
function pTutor()
{
var PTutor=Tutor
PTutor.tutorial;
}
}

index.js文件中,我使用下面的代码来调用该函数

app.get('/',function(req,res) {
var localTutor=require('./child.js');
localTutor.NodeTutorial();
localTutor.NodeTutorial.pTutor();


return res.send({error:true,message:'working'});
//res.render('html');
})

但它显示以下错误;

TypeError: localTutor.NodeTutorial.pTutor is not a function
at /var/www/html/nodejs/index.js:36:26
at Layer.handle [as handle_request] (/var/www/html/nodejs/node_modules/express/lib/router/layer.js:95:5)
at next (/var/www/html/nodejs/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/var/www/html/nodejs/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/var/www/html/nodejs/node_modules/express/lib/router/layer.js:95:5)
at /var/www/html/nodejs/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/var/www/html/nodejs/node_modules/express/lib/router/index.js:335:12)
at next (/var/www/html/nodejs/node_modules/express/lib/router/index.js:275:10)
at cors (/var/www/html/nodejs/node_modules/cors/lib/index.js:188:7)
at /var/www/html/nodejs/node_modules/cors/lib/index.js:224:17
at originCallback (/var/www/html/nodejs/node_modules/cors/lib/index.js:214:15)
at /var/www/html/nodejs/node_modules/cors/lib/index.js:219:13
at optionsCallback (/var/www/html/nodejs/node_modules/cors/lib/index.js:199:9)
at corsMiddleware (/var/www/html/nodejs/node_modules/cors/lib/index.js:204:7)
at Layer.handle [as handle_request] (/var/www/html/nodejs/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/var/www/html/nodejs/node_modules/express/lib/router/index.js:317:13)

如何在index.js中调用扩展模块内的函数?

最佳答案

我真的不知道为什么你要在导出中嵌套函数,你可以使用基本的 module.exports 来实现更少的函数链接。

下面是我如何解决这个问题的,除非您确实需要 NodeTutorial 然后为它创建一个单独的函数。

child.js

var Tutor=require('./add.js');
module.exports = {
pTutor: function () {
var PTutor=Tutor
PTutor.tutorial();
}
}

var Tutor=require('./add.js');
exports.NodeTutorial = function () {
return function pTutor () {
var PTutor=Tutor
PTutor.tutorial();
}
}

index.js

app.get('/',function(req,res) {
const localTutor=require('./child.js');
console.log(localTutor.pTutor());
localTutor.pTutor();// use this or the higher order function
localTutor.NodeTutorial()() // higher order function
return res.send({error:true,message:'working'});
res.render('html');
})

我得到它是为了获得Ptutor功能如果你真的需要NodeTutorial我会研究它

关于node.js - 尝试在 Node js 中扩展模块时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com