【发布时间】:2022-11-23 08:49:27
【问题描述】:
我想在函数抛出错误时加载一个新的错误页面。
我想在抛出错误时显示一个错误页面,但该页面卡在加载屏幕上并且我的日志中有错误消息。现在,如果函数 getStockPoints 抛出错误,并且如果我将此函数导出到 app.js 并在其中使用 try 和 catch 块调用它,它会捕获错误,但页面只是停留在加载过程中。我想让它转到错误页面
module.exports = {
async getStocks () {
return stocks
},
async getStockPoints (stockName, timestamp) {
if (Math.random() < FAILUE_RATE) {
throw new Error('Failed to generate stock data')
}
if (!stocks.includes(stockName)) {
throw new Error(`Uknown stock ${stockName}`)
}
const timestamps = getTimestamps(+timestamp, 10)
return getSeries(stockName, timestamps).map((value, idx) => ({
value,
timestamp: timestamps[idx]
}))
}
}
我做了 try catch 方法并尝试加载一个新页面,但它不起作用。
app.get('/stocks/:symbol', async (req, res) => {
const { params: { symbol } } = req
try{
const data = await stocks.getStockPoints(symbol, new Date())
res.render('stockPoints', {DATA: data})
}
catch(e){
console.log("ERRORs: ")
console.error(e)
}
})
错误信息如下 页面现在卡在加载中
Error: Uknown stock df
at Object.getStockPoints (C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\stocks.js:47:13)
at C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\app.js:24:31
at Layer.handle [as handle_request] (C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\node_modules\express\lib\router\route.js:144:13)
at Route.dispatch (C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\node_modules\express\lib\router\route.js:114:3)
at Layer.handle [as handle_request] (C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\node_modules\express\lib\router\index.js:284:15
at param (C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\node_modules\express\lib\router\index.js:365:14)
at param (C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\node_modules\express\lib\router\index.js:376:14)
at Function.process_params (C:\Users\talha_znbd0fl\Desktop\JavaScript-Challenge-master-main\JavaScript-Challenge-master-main\node_modules\express\lib\router\index.js:421:3)
【问题讨论】:
标签: javascript node.js express