Node.js错误:无法从Web浏览器上的URL获取/
问题描述: 在Web浏览器上运行Node.js应用程序的URL时,会抛出以下错误:
Cannot GET/
示例: 让我们创建一个简单的Node.js应用程序,以抛出相同的错误。
步骤1:初始化NPM: 在终端中创建和定位您的项目文件夹,并输入以下命令:
npm init -y
它初始化我们的节点应用程序并创建一个 package.json 文件。
步骤2:安装依赖项: 在终端中找到您的根项目目录,并键入以下命令。
npm install express
将Express作为项目的依赖项安装:
步骤3:创建服务器文件: 在’ app.js ‘文件中,引用Express模块,并创建一个常量’app’来创建Express模块的实例。
const express = require('express')
const app = express()
步骤4:创建消息路由: 使用 app.get() 方法创建一个get路由,将 “hello” 作为文本发送到Web浏览器。
app.get("/messages", (req, res) => {
res.send("Hello");
});
步骤5:设置端口运行我们的服务器: 我们将使用express的 app.listen() 方法来完成。
app.listen(3000, () => {
console.log("listening on http://localhost:3000");
})
完整代码:
const express = require('express')
const app = express()
app.get("/messages", (req, res) => {
res.send("Hello");
});
app.listen(3000, () => {
console.log("listening on http://localhost:3000");
})
输出:
原因: 由于在服务器文件中,我们为 ‘/messages’ URL 创建了一个获取路由,但在浏览器中,我们尝试获取未在我们的服务器文件中指定的 ‘/ ‘URL,这就是为什么它会抛出错误的原因。
解决方案方法: 我们需要设置一个通用路由,当调用任何未在服务器文件中指定的路由或URL时,通用URL会发送一个 “404 URL NOT FOUND” 消息。
app.get("/:universalURL", (req, res) => {
res.send("404 URL NOT FOUND");
});
完整代码:
const express = require('express')
const app = express()
app.get("/messages", (req, res) => {
res.send("Hello");
});
app.get("/:universalURL", (req, res) => {
res.send("404 URL NOT FOUND");
});
app.listen(3000, () => {
console.log("listening on http://localhost:3000");
})
输出: