我有两个文件,一个名为filename,第二个名为app.js,两个文件都在服务器端。从filename.js filder我将一个值字符串从ensureAuthentication方法返回到app.js文件,所以我导出函数:
function ensureAuthentication(){
return 'tesstestest';
}
exports.ensureAuthentication = ensureAuthentication;
在app.js文件中我做了以下
var appjs = require('filename');
console.log(appjs.ensureAuthentication);
结果总是在控制台中一成不变的!为什么有这个想法?
答案 0 :(得分:0)
你应该在你的app.js中试试这个 -
var login = require('filename');
console.log(login());
或者你可以使用它:
var login = require('filename')();
console.log(login);
说明:无论何时使用导出导出函数,都需要执行它以从中获取返回值。
答案 1 :(得分:0)
您的代码有两个问题:
您需要使用相对路径(注意./):
var appjs = require(' ./ filename');
要获取字符串值,您需要将ensureAuthentication作为函数调用:
的console.log(appjs.ensureAuthentication());
<强>更新强>
此更新解决了screenshot posted in the comments。
在评论中粘贴的屏幕截图中,您有以下一行:
module.exports = router
为模块分配不同的导出对象。因此,您对exports
的本地引用不再是同一个对象。
将该行更改为
module.exports = exports = router
这将保留您下次使用的exports
的引用。
答案 2 :(得分:0)
试试这个:
var appjs = require('filename');
console.log(appjs.ensureAuthentication());
注意函数调用后的()。这将执行您的功能。然后console.log()调用将打印返回的值。
答案 3 :(得分:0)
试试这个,确保两个文件都在同一个目录中。您的代码有一些错误。缺少括号,而不是在app.js中正确导入
<强> filename.js 强>
function ensureAuthentication(){ // You are missing the brackets here.
return 'tesstestest';
}
exports.ensureAuthentication = ensureAuthentication;
<强> app.js 强>
var appjs = require('./filename'); // You are missing the ./ here.
console.log(appjs.ensureAuthentication()); // Logs 'tesstestest'
答案 4 :(得分:-1)
您可以使用工作代码
filename.js
function ensureAuthentication(){
return 'tesstestest';
}
module.exports = {
ensureAuthentication : ensureAuthentication
}
<强> app.js 强>
var appjs = require('./utils/sample');
console.log(appjs.ensureAuthentication());