javascript - 我想使用node js返回文件的内容

标签 javascript node.js protractor

我在 Protractor 中编写了以下代码。

helper.js:

var fs = require('fs');
helper = function(){
    this.blnReturn = function(){
        var filePath = '../Protractor_PgObjModel/Results/DontDelete.txt';
        fs.readFileSync(filePath, {encoding: 'utf-8'}, function (err, data){
            if (!err) {
                console.log(data);
                return data;
            } else {
               return "False";
            }
        });
    };
};
module.exports = new helper();

------------上面js被调用的实际文件--------------------

describe("read contents of file",function(){
  var helper = require("../GenericUtilities/helper.js");
  it('To Test read data',function(){
    console.log("helper test - " + helper.blnReturn());   
  });
});

--------输出-------------

helper test - undefined

非常感谢这方面的任何帮助,因为它阻碍了我的工作。

最佳答案

您对同步读取文件(readFileSync)和异步读取文件(readFile)感到困惑。

您正在尝试同步读取文件,但也使用回调参数,正确的方法是

return fs.readFileSync(filePath, {encoding: 'utf-8'});

this.blnReturn = function(cb){
    ...
    fs.readFileSync(filePath, {encoding: 'utf-8'}, function (err, data){
        if (!err) {
            console.log(data);
            cb(data);
        } else {
           cb("False");
        }
    });

另外,在一个不相关的注释中,helper 定义中缺少 var 关键字,helper.js 可以简化为:

var fs = require('fs');
function helper(){}

helper.prototype.blnReturn = function(){
    var filePath = '../request.js';
    return fs.readFileSync(filePath, {encoding: 'utf-8'});
};

module.exports = new helper();

关于javascript - 我想使用node js返回文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31527328/

相关文章:

javascript - 多层元素上的 Mousedown 事件 [JavaScript]

javascript - 使用滚动条后 Canvas 像素坐标偏移

javascript - 未捕获的语法错误 : Unexpected identifier on face-api import

node.js - Rails 项目中的 Node 模块可能会缓存旧版本?

node.js - npm install -g Protractor 出错

angularjs - 如何使用 Protractor 测试下拉滚动中元素的可见性?

javascript - 检测 mousedown 事件持续多长时间,然后在超过一定时间后阻止 mouseup 操作

javascript - 绝对定位元素 - 需要切换可见性

node.js - 如何修复 npm install node-pre-gyp ERR 错误

angularjs - 使用 Protractor 在 ngOptions 中获取选定的选项