繁体   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