【问题标题】:node.js require("fs") gives empty objectnode.js require("fs") 给出空对象
【发布时间】:2019-11-10 14:36:36
【问题描述】:

在我的 Ionic 项目中,当我为 require('fs') 运行一个简单的测试代码时:

const fs = require('fs');
console.log(fs) //empty object {}
if(!fs.existsSync('./testFolder')){
    console.log('Folder not found');
}
else{
    console.log('Folder Found');
}

错误是

TypeError: fs.existsSync 不是函数

但是如果我创建一个 js 文件并像node test-fs 这样在 cmd 上运行它,我可以注销 fs 对象并获得结果。

有什么原因吗?


编辑:

希望最终能做到:

var request = require('request');
var fs = require('fs');

var options = {
    url: 'https://some-url/api',
    headers: {
        "content-type": "application/json",
    },
    agentOptions: {
        pfx: fs.readFileSync(__dirname + '/certs/myCert.p12'),
        passphrase: ''
    }
};

request.get(options, (error, response, body) => {
    console.log(error);
    console.log(response);
    console.log(body);
});

【问题讨论】:

  • 你想在 TypeScript 文件中使用 'fs' 模块吗?

标签: node.js ionic-framework ionic2 fileshare


【解决方案1】:

文件系统模块是服务器端节点模块,它不会在应用程序内部运行,它是客户端代码。代替 Ionic 应用程序使用本机 file plugin

import { File } from '@ionic-native/file/ngx';

constructor(private file: File) { }

【讨论】:

  • 我已经编辑了我的问题以显示我希望实现的目标。在发出涉及证书的 http 请求时,已经看到了很多使用 fs 的示例。那也不会运行吗?
  • @Huiting 那些例子可能是 node.js 的例子。 Ionic 不是 node.js,而是运行代码的自定义浏览器
  • NodeJs 模块不能在 ionic 内部工作,Ionic 是前端,NodeJs 是后端。对于基于证书的 http 调用,请参阅 forum 以获得一些指导。
猜你喜欢
  • 2023-02-19
  • 2016-03-14
  • 2016-08-10
  • 2015-10-22
  • 2014-07-15
  • 1970-01-01
  • 2020-09-21
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多