これらのコードは別のファイルに保存されており、このファイルから別のnodejsにgetメソッドを呼び出そうとしましたが、出力として[関数]しか取得していません。
このファイルから別のノードのjsファイルにgetメソッドを呼び出す方法を教えてもらえますか?
'use strict';
var createAPIRequest = require('../../lib/apirequest');
function Fitness(options) {
var self = this;
this._options = options || {};
this.users = {
dataSources: {
get: function(params, callback) {
var parameters = {
options: {
url: 'https://www.googleapis.com/fitness/v1/users/{userId}/dataSources/{dataSourceId}',
method: 'GET'
},
params: params,
requiredParams: ['userId', 'dataSourceId'],
pathParams: ['dataSourceId', 'userId'],
context: self
};
return createAPIRequest(parameters, callback);
} } }; }
このファイルに追加します
_module.exports = Fitness
_
次に、それを使用したい場所で行います
var Fitness = require('./fitness');
私が最初に気付いたのは、「dataSources」プロパティが「users」オブジェクトの内部にあることです。したがって、このオブジェクトにアクセスするには、外部からsers.dataSourcesを実行する必要があります。
物事を機能させるため。
fitness.jsにいくつか変更を加えました
'use strict';
var createAPIRequest = require('../../lib/apirequest');
function Fitness(options) {
var self = this;
this._options = options || {};
this.users = {
dataSources : { // You have property 'dataSources' in users object that will be accessible via Fitness object(Publically)
get: function(params, callback) {
var parameters = {
options: {
url: 'https://www.googleapis.com/fitness/v1/users/{userId}/dataSources/{dataSourceId}',
method: 'GET'
},
params: params,
requiredParams: ['userId', 'dataSourceId'],
pathParams: ['dataSourceId', 'userId'],
context: self
};
return createAPIRequest(parameters, callback);
}
}
};
}
module.exports = Fitness; // This will export your Fitness constructor
別のファイルのFitnessモジュールにアクセスするための以下のコードを記述します
var Fitness = require('pathToFitness/fitness.js'); // This will load your fitness module
var fitness = new Fitness(options); // Create object of class Fitness
fitness.users.dataSources.get(); // Access get() method
getは、クラスも作成する必要がある内部関数です。モジュールでは、クラス全体をエクスポートできます。
module.exports.Fitness = Fitness;
他のモジュールの場合:
var f = require('./Fitness'); /* given that Fitness.js is the name */
var fitness = new f.Fitness(...); /* call module.exports.Fitness of required file */
fitness.users.dataSources.get(...);
あなたはそうしようとしましたか?はいの場合、どこでエラーが発生しますか?
* just make 2 file one will have file read operation and another will fetch data
Hi like you are having a file abc.txt and many more
create 2 file || fileread.js and fetchingfile.js
**in fileread.js write this code***
function fileread(filename){
var contents= fs.readFileSync(filename);
return contents;
}
var fs =require("fs"); // file system
//var data= fileread("abc.txt");
module.exports.fileread =fileread;
//data.say();
//console.log(data.toString());
**in fetchingfile.js write this code**
function myerror(){
console.log("Hey need some help");
console.log("type file=abc.txt");
}
var ags = require("minimist")(process.argv.slice(2),{string: "file" });
if(ags.help || !ags.file) {
myerror();
process.exit(1);
}
var hello=require("./fileread.js");
var data= hello.fileread(ags.file); // importing module here
console.log(data.toString());
**in your cmd type
node fetchingfile.js --file=abc.txt**
you are passing file name as a argument moreover include all file in readfile.js instant of passing it
thanks