javascript - Node.js 中如何解析自定义模块的绝对或相对文件路径?

标签 javascript node.js

require 似乎没有采用除 './parser1' 之外的任何路径。我已将这两个 js 文件放在桌面中。我运行了 node my_parser.js ,它总是向我抛出一个错误,指出相对路径 require('parser1') 或绝对路径 require('Desktop/parser1') 的“找不到模块”。

为什么只用require('./parser1'来解析文件路径?背后的配置是什么?

请找到下面的代码:

 // Require my new parser.js file.
var Parser = require('./parser1');

var fs = require('fs');

// Read the contents of the file into memory.
fs.readFile('Desktop/example_log.txt', function (err, logData) {

// If an error occurred, throwing it will
  // display the exception and end our app.
  if (err) throw err;

// logData is a Buffer, convert to string.
  var text = logData.toString();

  // Create an instance of the Parser object.
  var parser = new Parser();

  console.log(parser.parse(text));
});

解析器1:

// Parser constructor.
var Parser = function() {

};

// Parses the specified text.
Parser.prototype.parse = function(text) {

var results = {};

// Break up the file into lines.
  var lines = text.split('\n');

lines.forEach(function(line) {
    var parts = line.split(' ');
    var letter = parts[1];
    var count = parseInt(parts[2]);

if(!results[letter]) {
      results[letter] = 0;
    }

results[letter] += parseInt(count);
  });

return results;
};

// Export the Parser constructor from this module.
module.exports = Parser;

最佳答案

require(..) 可以与以下两种路径类型之一一起使用:

  • 相对于当前文件的路径
  • 已安装软件包的名称

相对路径:

相对路径以点+斜杠('./')开头,然后输入所需文件的实际相对位置:./path/to/your/module

安装的包名称

另一方面,如果您选择直接将 require 与包名称一起使用,则 eq. require('express'), Node 查找保存已安装模块的特定文件夹:node_modules。一旦找到匹配的,就会被导入。如果没有任何包匹配,node 会尝试在操作系统文件系统中查找上一级的另一个 node_modules 文件夹。如果找不到任何内容,则会引发您遇到的错误。

关于javascript - Node.js 中如何解析自定义模块的绝对或相对文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32550196/

相关文章:

javascript - jquery :gt selector bug?

javascript - Closure Compiler 使用 MutationObserverInit 的方法是什么?

javascript - 如何停止在 Electron 应用程序上创建空日志目录

node.js - Sqlite 如何对值进行转义以防止 SQL 注入(inject)

javascript - 对象匹配的返回值

javascript - 此回调函数未定义

javascript - 在哪里调用 AsyncStorage.getItem( ) 函数来加载react-native中保存的数据?

node.js - 为什么 `yarn upgrade my_package` 升级时不考虑 package.json 中的版本

javascript - 如何存储从OAuth获得的access_token以供以后使用?

javascript - 如何在另一个动画完成后激活一个动画