Saya menggunakan fungsi async di dalam objek untuk mengirim respons di express.js
Kode Pengontrol:
module.exports = {
async signUpEmail(req, res) {
/**
* @description Parameters from body
* @param {string} firstName - First Name
* @inner
*/
const firstName = req.body.firstName;
res.send({ success: name });
throw new Error(); // purposely Done
}
}
Pertanyaan:
Karena metode signUpEmail dalam kasus saya adalah async dan akan ditolak dengan metode async apa pun yang saya lempar, ini dia Error
.(sengaja diletakkan di sana)
jadi login ini di konsol.
(node:13537) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error
(node:13537) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Jadi saya harus menanganinya dari rute tempat saya memanggilnya.
Kode Perute
const routes = require('express').Router();
const SignUpController = require('../controllers/signUpController')
// /signup
routes.post('/', SignUpController.signUpEmail);
module.exports = routes;
ada yang seperti ini SignUpController.signUpEmail().then(…);
Tapi karena saya tidak memanggil fungsi di rute yang saya lewati saja. Bagaimana hal ini dapat dilakukan secara efektif ?
PS:Tolong jangan menyarankan solusi yang terlalu rumit. Saya pemula dengan JS dan sedang belajar.
Saya tidak menggunakan penangan rute yang dapat dirantai karena saya ingin membuat penangan rute yang modular dan dapat dipasang.
routes.pos('/', (...args) => SignUpController.signUpEmail().then(…))
- person Bergi   schedule 23.04.2017…signUpEmail(...args)…
atau apa pun yang diharapkan fungsi Anda - person Bergi   schedule 23.04.2017ReferenceError: args is not defined
ini akan sangat membantu - person Ankur Anand   schedule 23.04.2017routes.post('/', (req, res) => SignUpController.signUpEmail(req, res).then(…))
- person Bergi   schedule 23.04.2017SignUpController.signUpEmail(req, res)
ini dan menjadikan hasilnya seperti yang dikembalikan oleh fungsi normal .. Koreksi saya jika saya tidak mengerti.. Terima kasih atas Anda sangat membantu :) - person Ankur Anand   schedule 23.04.2017async/await
bukan bagian dari ES7, melainkan bagian dari ES2017. - person Felix Kling   schedule 23.04.2017