我是一个编码新手,我使用的是node.js、javascript和html。当我在终端上使用“node index.js”运行服务器时,它会给我一个错误“Uncatched SyntaxError:意外的标记“〈”(在weatherApp.js:1:1)”,显示错误的weatherApp. js文件是index.html ...
index.js
const http = require('http')
const fs = require('fs')
const port = 3000
require('dotenv').config()
const api_key = process.env.API_KEY
const server = http.createServer(function(req, res){
//#200 represents good status code
res.writeHead(200, { 'Content-Type': 'text/html' })
fs.readFile('index.html', function(error, data) {
if (error) {
res.writeHead(404)
res.write('Error: File not found')
} else {
res.write(data)
}
res.end()
})
})
server.listen(port, function(error){
if (error) {
console.log('something went wrong', error)
} else {
console.log('server is listening on port ' + port)
}
})
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<script src="weatherApp.js" type="text/javascript"></script>
<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>Weather App</title>
</head>
<body>
<input type="text" placeholder="Search City">
<button type="button" id="searchButton" onclick="test()">Search</button>
</body>
</html>
weatherApp.js只是一个包含console.log的简单函数。
我尝试删除和错误消失,但仍然希望能够保留和附加.js文件,如果可能的话。
1条答案
按热度按时间luaexgnf1#
您需要检查请求URL是否为JS文件,如果是,则将JS文件发送回:
考虑使用一个现代的http服务器框架,比如fastify。正如你所看到的,这里的样板文件是相当混乱的,一个库可以很好地帮助解决这个问题。