Javascript 在express js的get请求中使用开关返回错误为什么?
因此,我仍然是nodejs的初学者,当我在浏览器中运行时,我会收到这样一条消息,Javascript 在express js的get请求中使用开关返回错误为什么?,javascript,node.js,express,Javascript,Node.js,Express,因此,我仍然是nodejs的初学者,当我在浏览器中运行时,我会收到这样一条消息,无法获取/,我想这是因为我使用了switch语句。我不能在应用程序内使用开关。获取?我想使代码干燥,这就是为什么我使用开关。 const express=require('express'); 常量app=express(); 常数端口=3000; 常量主机名='localHost'; app.get('/:main/:sub/:sub2',(req,res)=>{ 让main=String(req.params.
无法获取/
,我想这是因为我使用了switch语句。我不能在应用程序内使用开关。获取?我想使代码干燥,这就是为什么我使用开关。
const express=require('express');
常量app=express();
常数端口=3000;
常量主机名='localHost';
app.get('/:main/:sub/:sub2',(req,res)=>{
让main=String(req.params.main).toLowerCase();
let sub=字符串(req.params.sub).toLowerCase();
设sub2=String(req.params.sub2.toLowerCase();
开关(主){
案例“”:
res.send('Hi there welcome to my assignment');
案例“发言”:
{
开关(sub){
案例“猪”:
res.send(`pig说'Oink'`);
案例“奶牛”:
res.send(`奶牛说'哞'`);
案例“狗”:
res.send(`狗说'汪汪!'`);
案例“*”:
res.send(`对不起,这里没有人说话!`);
}
}
案例“重复”:
{
如果(sub2===!NaN){
for(设i=0;i{
console.log(`server has start`)
});
您的空字符串大小写不是在main
中搜索的有效参数
使用app创建默认路线。改为获取:
const express = require('express');
const app = express();
const port = 3000;
const hostname = 'localHost';
app.get("/", (req, res) => res.send("Welcome to my assignment"));
app.get('/:main/:sub/:sub2', (req, res) => {
let main = String(req.params.main).toLowerCase();
let sub = String(req.params.sub).toLowerCase();
let sub2 = String(req.params.sub2).toLowerCase();
switch (main) {
case "speak":
{
switch (sub) {
case "pig":
res.send(`The pig says 'Oink'`);
break;
case "cow":
res.send(`The cow says 'Moo'`);
break;
case "dog":
res.send(`The dog says 'Woof Woof!'`);
break;
case "*":
res.send(`sorry no one speaks here!`);
break;
}
}
case "repeat":
{
if (!Number.isNaN(sub2)) {
let str = "";
for (let i = 0; i < sub2; i++) {
str+=sub;
}
res.send(str);
}
break;
}
default:
res.send(`Page not found!`);
break;
break;
}
});
app.listen(port, hostname, () => {
console.log(`server has started`)
});
const express=require('express');
常量app=express();
常数端口=3000;
常量主机名='localHost';
app.get(“/”,(req,res)=>res.send(“欢迎来到我的作业”);
app.get('/:main/:sub/:sub2',(req,res)=>{
让main=String(req.params.main).toLowerCase();
let sub=字符串(req.params.sub).toLowerCase();
设sub2=String(req.params.sub2.toLowerCase();
开关(主){
案例“发言”:
{
开关(sub){
案例“猪”:
res.send(`pig说'Oink'`);
打破
案例“奶牛”:
res.send(`奶牛说'哞'`);
打破
案例“狗”:
res.send(`狗说'汪汪!'`);
打破
案例“*”:
res.send(`对不起,这里没有人说话!`);
打破
}
}
案例“重复”:
{
如果(!Number.isNaN(sub2)){
设str=“”;
for(设i=0;i{
console.log(`server has start`)
});
编辑我还调整了“重复”功能<代码>!NaN
始终为true
。您的原始代码基本上说是if(sub2===true)
,它永远不会这样。我用修改了它!Number.isNaN
条件方法。然后我连接了一个字符串并将其输出了n
次。您的空字符串大小写不是在main
中搜索的有效参数
使用app创建默认路线。改为获取:
const express = require('express');
const app = express();
const port = 3000;
const hostname = 'localHost';
app.get("/", (req, res) => res.send("Welcome to my assignment"));
app.get('/:main/:sub/:sub2', (req, res) => {
let main = String(req.params.main).toLowerCase();
let sub = String(req.params.sub).toLowerCase();
let sub2 = String(req.params.sub2).toLowerCase();
switch (main) {
case "speak":
{
switch (sub) {
case "pig":
res.send(`The pig says 'Oink'`);
break;
case "cow":
res.send(`The cow says 'Moo'`);
break;
case "dog":
res.send(`The dog says 'Woof Woof!'`);
break;
case "*":
res.send(`sorry no one speaks here!`);
break;
}
}
case "repeat":
{
if (!Number.isNaN(sub2)) {
let str = "";
for (let i = 0; i < sub2; i++) {
str+=sub;
}
res.send(str);
}
break;
}
default:
res.send(`Page not found!`);
break;
break;
}
});
app.listen(port, hostname, () => {
console.log(`server has started`)
});
const express=require('express');
常量app=express();
常数端口=3000;
常量主机名='localHost';
app.get(“/”,(req,res)=>res.send(“欢迎来到我的作业”);
app.get('/:main/:sub/:sub2',(req,res)=>{
让main=String(req.params.main).toLowerCase();
let sub=字符串(req.params.sub).toLowerCase();
设sub2=String(req.params.sub2.toLowerCase();
开关(主){
案例“发言”:
{
开关(sub){
案例“猪”:
res.send(`pig说'Oink'`);
打破
案例“奶牛”:
res.send(`奶牛说'哞'`);
打破
案例“狗”:
res.send(`狗说'汪汪!'`);
打破
案例“*”:
res.send(`对不起,这里没有人说话!`);
打破
}
}
案例“重复”:
{
如果(!Number.isNaN(sub2)){
设str=“”;
for(设i=0;i