将值返回到节点js中的app.js文件

时间:2016-05-27 09:38:36

标签: node.js express export

我有两个文件,一个名为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);

结果总是在控制台中一成不变的!为什么有这个想法?

5 个答案:

答案 0 :(得分:0)

你应该在你的app.js中试试这个 -

var login = require('filename');
console.log(login());

或者你可以使用它:

var login = require('filename')();
console.log(login);

说明:无论何时使用导出导出函数,都需要执行它以从中获取返回值。

答案 1 :(得分:0)

您的代码有两个问题:

  1. 您需要使用相对路径(注意./):

    var appjs = require(' ./ filename');

  2. 要获取字符串值,您需要将ensureAuthentication作为函数调用:

    的console.log(appjs.ensureAuthentication());

  3. <强>更新

    此更新解决了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());