Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用node.js在javascript的另一个文件中调用函数_Javascript_Jquery_Node.js_Express - Fatal编程技术网

使用node.js在javascript的另一个文件中调用函数

使用node.js在javascript的另一个文件中调用函数,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,我有一个问题,我正在尝试创建一个可以在单独的javascript文件中反复使用的对象。我有一个名为foo.js的文件和另一个名为boo.js的文件。我想在我的server.js文件中创建boo.js中的对象,我需要foo.js,它工作正常,我可以访问foo.js。我希望能够从foo.js访问boo.js。当我需要foo.js中的boo.js并且我无法访问它时,我会不断收到错误。有办法做到这一点吗 这是我的密码 //boo.js var obj = function () { return

我有一个问题,我正在尝试创建一个可以在单独的javascript文件中反复使用的对象。我有一个名为foo.js的文件和另一个名为boo.js的文件。我想在我的server.js文件中创建boo.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')
/
是相对于当前目录的

它们都在同一个目录中

在这种情况下,您需要从路径中删除
模块/

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

require()

路径开头的
/
将引用与
\uu dirname
相同的目录,该目录似乎是
模块/

console.log(__dirname);
// "/project-path/modules"
在路径中包含
模块/
将导致其加倍:

var path = require('path');

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


(旁注:
fs
模块的行为方式不同。它的相对路径基于当前工作目录或
process.cwd()

当我需要foo.js中的boo.js时,您会遇到什么错误?

文件之间的相对位置在哪里?它们是在同一个目录中还是在不同的目录中?我得到一个错误:找不到模块boo,它们都在同一个目录中。我将boo的文件路径从./modules/boo更改为./boo,结果成功了。