使用node.js在javascript的另一个文件中调用函数
我有一个问题,我正在尝试创建一个可以在单独的javascript文件中反复使用的对象。我有一个名为foo.js的文件和另一个名为boo.js的文件。我想在我的server.js文件中创建boo.js中的对象,我需要foo.js,它工作正常,我可以访问foo.js。我希望能够从foo.js访问boo.js。当我需要foo.js中的boo.js并且我无法访问它时,我会不断收到错误。有办法做到这一点吗 这是我的密码使用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
//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,结果成功了。