nodejs需要声明问题

我是nodejs的新手。 我有以下文件和代码:

// file: myfunc.js function myfunc() { return "myfunc()"; } exports = myfunc; 

 // file: index.js var mf = require("./myfunc"); var mfunc = mf(); console.log(mfunc); 

当我从命令行运行node index.js ,我得到的错误

 var mfunc = mf() ^ TypeError: Object is not a function 

为什么我得到这个错误? 我看到别人的代码,我粘贴下面,我试图按照相同的方法试图让require()返回一个函数,而不是一个对象。

 // file: index.js from another app var express = require('express'); var app = express(); 

为什么require('express')可以返回一个函数,但是require('./myfunc')不能返回一个函数?

它应该是…

 module.exports = myfunc; 

相反。 引用文档 :

如果您希望模块导出的根目录是一个函数(如构造函数),或者如果要在一个赋值中导出一个完整的对象,而不是一次构build一个属性,则将其分配给module.exports而不是exports