簡體   English   中英

如何在node.js中解析自定義模塊的絕對或相對文件路徑?

[英]How are absolute or relative file paths of the custom modules resolved in node.js?

require似乎沒有采取'./parser1'以外'./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_modules 一旦找到匹配的,就將其導入。 如果沒有軟件包匹配,則節點將嘗試在OS文件系統中的上一級找到另一個node_modules文件夾。 如果找不到任何東西,則會引發您的錯誤。

暫無
暫無

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

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