关闭路由时出现不可恢复的语法错误
Posted
技术标签:
【中文标题】关闭路由时出现不可恢复的语法错误【英文标题】:Unrecoverable syntax error while closing route 【发布时间】:2020-07-15 13:58:48 【问题描述】:const express = require('express');
const app = express();
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded( extended: false ));
app.get('/split/name', (req, res) =>
var name=req.query.fullName;
name=name.split(' ');
var first=name[0];
var second=name[1];
res.status(200).json(firstName: first,secondName:second);
);
// end split name
app.get('/calculate/age', (req, res) =>
var dob = req.query.dob;
var getAge = (dob) =>
var today = new Date();
var birthDate = new Date(dob);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate()))
age--;
return age;
res.status(200).json(age: getAge(dob));
);// i get the error here
根据问题,我得到的输入是“/split/name?fullName=ritik verma”,我必须将其拆分为名字和姓氏 第二部分是“/calculate/age?dob=17-04-1999”,我需要计算年龄。
所以我给你一个实际的问题可能会有所帮助
问题:-
创建一个具有以下路由并在端口 3000 上运行的 Express 应用程序 -
Route 1 - GET /split/name - 将 fullName 作为查询参数并给出 firstName 和 姓氏作为输出。
示例输入 - /split/name?fullName=Aditya Kumar
输出 -
“名字”:“阿迪亚”,
“lastName”:”Kumar”
Route 2 - /calculate/age - 以 yyyy-mm-dd 格式获取出生日期和 返回此人的年龄。
示例输入 - /calculate/age?dob=1992-02-28
输出 -
“年龄”:27
注意:您不需要使用 app.listen()。这将由系统处理。
【问题讨论】:
你遇到了什么错误? 会不会是日期字符串的格式?17.04.1999
是一种非标准日期格式,因此您的 getAge
会生成 NaN
。我猜这无法正确序列化,因此您会收到错误。
它要求添加';'在“返回年龄”上方的右大括号之后
【参考方案1】:
**代码似乎工作正常,只需要添加 app.listen 服务器来监听特定端口 **
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded( extended: false ));
app.get('/split/name', (req, res) =>
var name=req.query.fullName;
name=name.split(' ');
var first=name[0];
var second=name[1];
res.status(200).json(firstName: first,secondName:second);
);
// end split name
app.get('/calculate/age', (req, res) =>
var dob = req.query.dob;
var getAge = (dob) =>
var today = new Date();
var birthDate = new Date(dob);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate()))
age--;
return age;
res.status(200).json(age: getAge(dob));
);// i get the error here
app.listen(3000, ()=>
console.log("Server listening port 3000")
)
现在尝试以下任何一种方法
http://localhost:3000/calculate/age?dob=11.12.1980 http://localhost:3000/split/name?fullName=Kishor%20ranga在本地测试
【讨论】:
你我也找不到任何错误。也许它与在线编译器有关。 我试过它在本地工作得很好。我正在使用节点版本 10.15.0。请验证您的。在本地测试(在上面添加了屏幕截图)它工作正常。 你也可以上传年龄一号 当然,也请找出一岁。希望这对您有所帮助。以上是关于关闭路由时出现不可恢复的语法错误的主要内容,如果未能解决你的问题,请参考以下文章