我使用 typescript NodeJS、Express 和 MongoDB 創建了一個 CRUD API。我想要實作的是,當我發送正確的引數時使用 POST 方法。API 作業正常。但是,每當我向 API 發送不正確的引數時,整個 NodeJS 應用程式都會崩潰,我會在控制臺中收到一條錯誤訊息,指出傳遞給 API 的引數是錯誤的,我將再次重新啟動應用程式。
當用戶向 API 發送不正確的引數時。我不希望 NodeJS 應用程式崩潰。我想顯示有用的錯誤訊息。保持應用程式運行。我不想重新啟動應用程式。
這是我用來創建新提供程式的代碼。
public addProviders(req: Request, res: Response, next: NextFunction) {
var type = req.body.type,
name = req.body.name;
let newProvider = new Provider({
type,
name
})
newProvider.save()
.then((provider: Object) => {
if (provider) {
let statusCode = res.statusCode;
res.json({
statusCode,
provider
})
}
})
}
以下是我迄今為止嘗試過的代碼。
try {
newProvider.save()
.then((provider: Object) => {
if (provider) {
let statusCode = res.statusCode;
res.json({
statusCode,
provider
})
}
})
}
catch (e) {
res.json("enter valid parameters")
}
我是 NodeJS 的新手。提前致謝。
uj5u.com熱心網友回復:
在添加到資料庫之前,您需要添加輸入驗證中間件來檢查輸入。
#1您可以手動檢查,例如:
var { type, name } = req.body;
if (typeof type !== 'string') {
res.status(400).send("type input is not valid");
} else if (typeof name !== 'string') {
res.status(400).send("name input is not valid");
} else {
let newProvider = new Provider({
type,
name
})
// ...rest of the code
}
#2或者你可以使用像express-validator.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/363259.html
標籤:javascript 节点.js 打字稿 接口 表达
