📜  npm express 异步处理程序 - Javascript (1)

📅  最后修改于: 2023-12-03 15:33:12.666000             🧑  作者: Mango

使用npm安装Express和相关依赖

在 Node.js 应用中,我们经常使用Express框架来构建Web应用程序。因此,我们需要用npm来安装Express和相关依赖模块。

步骤 1:安装Node.js

如果你还没有Node.js,你可以去Node.js官网下载安装包来安装Node.js。下载并安装后,你可以在需要的地方使用node和npm命令。

步骤 2:创建新项目

使用mkdir命令创建一个新的项目目录,并在其中使用npm init命令来创建一个新的NPM项目。执行后需要按照提示一步一步地配置。

mkdir my-express-app
cd my-express-app
npm init
步骤 3:安装Express和相关依赖

使用npm install命令来安装Express和相关依赖模块。在本例中,我们还将使用和安装以下依赖模块:

  • body-parser:用于解析HTTP请求体中的JSON和表单数据。
  • morgan:用于HTTP请求的日志记录。
  • express-handlebars:用于呈现HTML页面的模板引擎。
npm install express body-parser morgan express-handlebars
步骤 4:创建Express应用程序

现在,我们已经安装了Express框架和相关依赖,让我们开始编写代码。在项目根目录下,创建一个名为 server.js 的文件,然后在其中编写以下代码:

const express = require('express');
const bodyParser = require('body-parser');
const logger = require('morgan');
const exphbs = require('express-handlebars');

const app = express();

const PORT = process.env.PORT || 3000;

// 设置视图引擎
app.engine('hbs', exphbs({ defaultLayout: 'main', extname: '.hbs' }));
app.set('view engine', 'hbs');

// 配置中间件
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// 记录日志
app.use(logger('dev'));

// 处理请求
app.get('/', async (req, res) => {
  try {
    const result = await getDataFromServer();
    res.render('index', { data: result });
  } catch (error) {
    res.status(500).send(error.message);
  }
});

// 启动服务器
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

// 异步处理程序
async function getDataFromServer() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Hello World');
    }, 2000);
  });
}

在上面的代码中,我们使用了Express框架来构建应用程序。我们设置了一个视图引擎为 Express-Handlebars,然后使用 body-parser 中间件来解析 HTTP 请求体中的 JSON 和表单数据。我们还使用了 morgan 中间件来记录 HTTP 请求的日志。

我们定义了一个GET请求处理程序,它使用异步函数 getDataFromServer() 来从服务器异步获取数据。如果成功,我们将结果呈现为 index 模板,并将数据呈现给网页。

步骤 5:启动应用程序

最后一步是启动您的应用程序。在命令行中,输入以下命令来启动应用程序:

node server.js

这将启动您的应用程序,使其在端口3000上运行。您可以在浏览器中访问 http://localhost:3000 来查看您的应用程序是否正确运行。