簡體   English   中英

文本文件中的行數 (10) 小於特定數字 (5)

[英]Number of lines in a text file (10) is smaller than a specific number (5)

我正在嘗試制作一個應用程序,其中有一個按鈕,單擊該按鈕后,它將計算特定文本文件的行數(在我的情況下,文本文件有 10 行隨機單詞),並比較具有特定數字的文本文件中的行數(在我的情況下為 5),並且如果文本文件中的行數(10)大於特定數字(5),它將控制台。 log('true') 否則它將 console.log('false')。 但由於某種原因,它是 console.log('false'),我不知道它發生的原因,因為 10 大於 5。任何人都可以幫我嗎?

這是我的文本文件中的內容

test
test
test
test
test
test
test
test
test
test

這是我的 json 文件中的內容

{
    "data": [
        {
            "number": 5,
            "textFile": "data.txt"
        }
    ]
}

這是我的 ejs 文件中的內容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <% data.data.forEach(function(item) { %>
        <div id="shopItem">
            <button id="btn">Click Me!</button>
            <div id="number" style="opacity: 0;"><%= item.number %></div>
            <div id="textFile" style="opacity: 0;"><%= item.textFile %></div>
        </div>
    <% }) %>

    <script src="index.js"></script>
</body>
</html>

這是我的 javascript 文件的內容

document.getElementById('btn').addEventListener('click', function() {
    let textFile = document.getElementById('textFile').innerHTML
    let number = document.getElementById('number').innerHTML

    fetch('/number', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({
            textFile: textFile
        }),
    })
    .then((Response) => {
        return Response.text()
    })
    .then((nLines) => {
        if (nLines >= number) {
            console.log('true')
        } else if (nLines < number) {
            console.log('false')
        }
    })
    .catch((error) => {
        console.error(error);
    })
})

這是我的 nodejs 文件中的內容

const express = require('express')
const app = express()
const fs = require('fs')
const path = require('path')

app.set('view engine', 'ejs')
app.use(express.static('public'))
app.use(express.json())

app.get('/', (req, res) => {
    fs.readFile('data.json', (error, data) => {
        if (error) {
            res.status(500).end()
        } else {
            res.render('index.ejs', {
                data: JSON.parse(data)
            })
        }
    })
})

app.post('/number', (req, res) => {
    const textFile = req.body.textFile

    const filePath = path.join(__dirname + `/public/${textFile}`)
    const fileData = fs.readFileSync(filePath, 'utf-8')

    let nLines = 0;
    for( let i = 0; i < fileData.length;  ++i ) {
      if( fileData[i] === '\n' ) {
          ++nLines;
      }
    }

    res.json(nLines + 1)
})

app.listen(3000, console.log('Server started!'))

nLinesnumber是字符串。 nLines >= number字典nLines >= number比較 您可以將字符串轉換為數字:

if (+nLines >= +number) {
    console.log('true')
} else {
    console.log('false')
}

暫無
暫無

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

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