在 Express 中,`then` 方法通常用于 Promise 链式调用。在路由设置中,如果使用了 Promise 完成异步操作,则可以在 Promise 完成后继续执行下一步操作,例如发送响应。
下面是一个使用 then 方法的示例:
```javascript
const express = require('express');
const app = express();
function getData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Hello World');
}, 1000);
});
}
app.get('/', (req, res) => {
getData()
.then(data => {
// 在 Promise 完成后发送响应
res.send(data);
})
.catch(err => {
// 处理错误
console.error(err);
res.status(500).send('Internal Server Error');
});
});
const port = 3000;
app.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
```
在上述代码中,我们定义了一个 `getData` 函数,它返回一个 Promise,在 1 秒后解析为字符串 `'Hello World'`。在 Express 应用中,我们使用 `app.get` 方法定义了一个路由,当有 GET 请求访问 '/' 路径时,回调函数会调用 `getData` 方法获取数据。在 Promise 完成后,我们使用 `then` 方法发送响应,如果发生错误,我们使用 `catch` 方法处理错误并发送 500 错误响应。最后,我们使用 `app.listen` 方法启动 Express 应用并监听 3000 端口。
通过这个示例,我们可以看到在 Express 应用中使用 then 方法可以方便地进行异步操作和响应处理。