javascript - RangeError [ERR_HTTP_INVALID_STATUS_CODE]:无效状态代码:4
问题描述
尝试运行我的 Web 应用程序时出现此错误,该应用程序应该是一个简单的计算器。我将 Nodejs 与 express.js 框架一起使用。
这是我的主要 js 文件:
const express = require('express');
const app = express();
const port = 3000;
app.use(express.urlencoded({ extended : true}));
app.use(express.json());
app.get("/", function(req, res){
res.sendFile(__dirname + "/index.html");
});
app.post("/", function(req, res){
var num1 = Number(req.body.num1);
var num2 = Number(req.body.num2);
var result = Number(num1 + num2);
res.send(result);
});
app.listen(port, function(){
console.log("SERVER STARTED ON PORT " + port);
});
这是我的 index.html 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Calculator</title>
</head>
<body>
<h1>Calculator</h1>
<form action="/" method="post">
<input type="text" name="num1" placeholder="first number">
<input type="text" name="num2" placeholder="second number">
<button type="submit" name="submit">Calculate</button>
</form>
</body>
</html>
这是我在终端中得到的错误代码:
express deprecated res.send(status): Use res.sendStatus(status) instead calculator.js:23:9
RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: 4
at ServerResponse.writeHead (_http_server.js:255:11)
at ServerResponse._implicitHeader (_http_server.js:246:8)
at ServerResponse.end (_http_outgoing.js:811:10)
at ServerResponse.send (/Users/<name>/Desktop/Calculator/node_modules/express/lib/response.js:221:10)
at /Users/<>/Desktop/Calculator/calculator.js:23:9
at Layer.handle [as handle_request] (/Users/<name>/Desktop/Calculator/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/<name>/Desktop/Calculator/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/<name>/Desktop/Calculator/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/<name>/Desktop/Calculator/node_modules/express/lib/router/layer.js:95:5)
at /Users/<name>/Desktop/Calculator/node_modules/express/lib/router/index.js:281:22
这就是我可以获得/提供的所有信息。
我试过用谷歌搜索答案,但我得到的只是错误代码:0。
编辑:我应该注意到我对 nodejs 和 express.js 相当陌生。
解决方案
我有同样的问题。只需在您的结果编号中添加一些文本。它会起作用的。
例如:
res.send("This is your answer " + result);
当我这样做时,错误消失了。
推荐阅读
- python - 将熊猫数据框的第一行转换为列名
- angular - 如何在 Angular 6 中使用 google transstate 和货币对话 api?
- php - 使用多个“IF 语句”是否正确?
- python-3.x - 张量 - 张量的箱线图
- java - 为什么 catalina.out 为空
- kubernetes - 如何将 Fluentd 配置为在 Azure Kubernetes 集群中拥有 Restfull 端点/自定义日志
- c# - WPF - 如果单击外部边界,则无法关闭窗口
- mediawiki - 将列表作为模板的参数传递
- java - 验证 REST 过滤器参数
- java - Eclipse:查找覆盖方法的超类或接口