NodeJS 当我在浏览器中输入“localhost:3005”时,它工作了很长时间,才显示第一个结果

vhmi4jdf  于 2022-11-22  发布在  Node.js
关注(0)|答案(2)|浏览(139)

我 在 node.js 上 编写 了 简单 的 服务 器 运行 脚本

const http = require('http')

let requestsCount = 0
const server = http.createServer((request, response) => {
    requestsCount++
    response.write(`Leo Garsia ${requestsCount}`)

})

server.listen(3005, () => {
    console.info('Server is Running on port 3005')
})

中 的 每 一 个
当 我 在 浏览 器 中 输入 " localhost : 3005 " 时 , 它 会 工作 很 长 时间 , 在 显示 第 一 个 结果 之前 。 ( 大约 10 分钟 ) 为什么 它 会 突然 出现 ?
然后 当 我 刷新 浏览 器 的 时候 , 它 会 请求 计数 增加 两 次 , 并 显示 结果 , 比如 2 , 4 , 6 , 等等 。 为什么 这么 有趣 ?

ilmyapht

ilmyapht1#

当我在浏览器中输入“localhost:3005”时,它工作了很长时间,在显示第一个结果之前。(大约10分钟)
您的回应永远不会完成,因为您的程式码在response.write之后缺少response.end()陈述式。因此浏览器会等到逾时(10分钟),然后显示目前为止所收到的内容。
然后当我刷新浏览器的时候,它会请求计数增加两次,并显示结果,比如2,4,6,等等。为什么这么有趣?
我怀疑另一个请求是浏览器对收藏夹图标的请求,请参见here

3pvhb19x

3pvhb19x2#

正如HeikoTheiBen所说的,我把response.end()的代码替换成了express。2现在,当我输入“localhost:3005/leo”时,结果会立即出现。

const express = require('express')

const app=express();
let requestsCount = 0
app.listen(3005, () =>{
   console.log('Server is running on port 3005...')
})

app.get('/leo', (request, response)=>{
    requestsCount++
    response.write(`Request URL is, ${request.url}  count is, ${requestsCount}`)
    response.end()
    console.info(`Request URL is, ${request.url}  count is, ${requestsCount}`)
})

相关问题