【发布时间】:2022-01-26 16:12:26
【问题描述】:
我正在尝试使用 Node.JS 设置模板站点。我是使用 Node.JS 的新手,我正在尝试打开一个 HTML 文件和一个 CSS 文件,然后再继续阅读其余代码。但是,即使到达 reponse.end(),循环也会继续运行,实际上是第二次运行,但不会再次到达终点。我投入了一些 console.log()s 来证明这一点。我将把我的 JS 代码和模式控制台输出都扔到下面。我不知道如何解决这个问题,任何帮助将不胜感激。非常感谢大家!
const server = require('http').createServer()
const markdown = require( "markdown" ).markdown
const fs = require('fs')
server.on('request', (request, response) => {
response.setHeader('Content-Type', 'text/html')
var page = fs.readFileSync("html/tb.html", 'utf8')
console.log("reading html...")
page+= "<style>"+fs.readFileSync("css/style.css", 'utf8')+"</style>"
console.log("reading css...")
const lang = Intl.DateTimeFormat().resolvedOptions().locale
if (request.url === '/') {
response.end()
}
else if (request.url === '/coucou') {
page+=markdown.toHTML('#Hello world!')
response.end(page)
console.log("end")
}
})
server.listen(4000)
我很抱歉我缺乏 NodeJS 经验,但我似乎无法在其他任何地方找到这个问题的答案。这是加载“coucou”时的控制台输出:
reading html...
reading css...
end
reading html...
reading css...
这里是首页
reading html...
reading css...
reading html...
reading css...
在第二轮之后它不会继续,但浏览器永远不会收到结束信号,因此会无限期地继续加载。如何让它实际处理响应的结束并告诉我的浏览器停止加载?
再次感谢大家!!!
【问题讨论】:
标签: javascript node.js