提问者:小点点

如何从NodeJS中的模块访问任何函数?


我在nodejs中使用restify框架创建了一个服务器,但是当我想从function.js中response()函数打印输出'hello undefined‘,实际上预期输出是'hello world',我认为function.js中的另一个函数正在影响。。。告诉我我们如何从module中访问特定的函数?

server.js

var restify=require('restify')
var respond=require("./src/Components/FunctionalComponents/Function")
var server=restify.createServer() //server created


server.get('/hellopj',respond);

server.listen(8080, function(){
    console.log("server started...")
})

function.js

module.exports =function respond(req,res,next){
        res.send('hello world ')
}

module.exports =function insertFun(req,res,next){
    res.send('hello '+req.params.name)
}

共1个答案

匿名用户

在NodeJS中有两种导出模块的方法。

  • 默认导出(一次没有任何键)
  • 命名为导出。 (一次带键)

现在,您使用的是默认导出,它被最后一个InsertFun导出所取代,因为每个文件只能有一个默认导出。

对于命名导出,只需给每个导出一个密钥,然后用该密钥导入,就可以了。

functions.js:

module.exports ={
   respond: function respond(req,res,next){
       res.send('hello world ');
   },
   insertFun: function insertFun(req,res,next){
       res.send('hello '+req.params.name)
   }
};

server.js:

const { respond } = require("./src/Components/FunctionalComponents/Function");

//......

server.get('/hellopj', respond);

//.....