簡體   English   中英

使用node.js在javascript中調用另一個文件中的函數

[英]calling a function in another file in javascript using node.js

我有一個問題,我正在嘗試創建一個可以在單獨的 javascript 文件中反復使用的對象。 我有一個名為 foo.js 的文件和另一個名為 boo.js 的文件。 我想在 boo.js 中創建對象 在我的 server.js 文件中,我需要 foo.js,它工作正常,我可以訪問 foo.js。 我希望能夠從 foo.js 訪問 boo.js。 當我在 foo.js 中需要 boo.js 並且無法訪問它時,我不斷收到錯誤消息。 有沒有辦法做到這一點?

這是我的代碼

//boo.js
var obj = function () {
   return {
     data: 'data'
  }
}

module.exports = {
  obj: obj
}

foo.js

//foo.js

var request = require('request');
var x = require('./modules/boo')
var random= function() {
    return x.obj();
}

module.exports = {
  random: random
}

如果它們在同一目錄中,您將需要像這樣var x = require('./boo') ./是相對於當前目錄的。

它們都在同一個目錄中

在這種情況下,您需要從路徑中刪除modules/

var x = require('./boo');

require()知道當前腳本的位置並根據腳本自己的父目錄建立相對路徑。

路徑開頭的./將引用與__dirname相同的目錄,它似乎是modules/

console.log(__dirname);
// "/project-path/modules"

在路徑中包含modules/將導致它加倍:

var path = require('path');

console.log(path.resolve(__dirname, './modules/boo'));
// "/project-path/modules/modules/boo"

(旁注: fs模塊的行為方式不同。它的相對路徑基於當前工作目錄或process.cwd() 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM