错误:ENOENT:没有这样的文件或目录,尽管文件存在

Sha*_*lam 4 node.js line-by-line

这是我的项目结构:

在此处输入图片说明

这是index.js

var express = require('express');
var router = express.Router();
var fs = require('fs');
var links = require('../models/Links');

var readline = require('linebyline');
var rl = readline('../data.txt');
router.get('/', function (req, res) {

    rl.on('line', function (line, lineCount, byteCount) {
        var data = line.split(',');
        var id = data[0];
        var url = data[1];           
    })
});

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我试过重写

var rl = readline('/../data.txt');
var rl = readline(__dirname +'/../data.txt');
Run Code Online (Sandbox Code Playgroud)

什么都行不通。

Wak*_*ake 7

您的 readline 调用仍然与您的应用程序运行的目录相关(您的根目录,app.js 所在的位置),因此我认为您不需要父目录引用。

应该只是

var rl = readline('./data.txt');
Run Code Online (Sandbox Code Playgroud)

或者如果你想使用 __dirname

var rl = readline(__dirname + '/data.txt');
Run Code Online (Sandbox Code Playgroud)