Express.js Web应用开发实例分享

绿茶清香 2019-12-27 ⋅ 16 阅读

Express.js 是一个简洁而灵活的Node.js Web应用框架,可以帮助开发者构建高性能、可扩展的应用程序。本文将通过一个实例,介绍如何使用Express.js开发一个简单的Web应用。

准备工作

在开始之前,我们需要安装Node.js和npm(Node.js的包管理器)。您可以从官方网站(https://nodejs.org)上下载和安装Node.js。安装完成后,可以打开终端并运行以下命令,确认Node.js和npm已正确安装:

node -v
npm -v

创建一个新的Express.js项目

在终端中,进入目标文件夹,并执行以下命令来创建一个新的Express.js项目:

npx express-generator myapp
cd myapp

这将使用Express.js的官方生成器创建一个名为"myapp"的新项目,并进入其目录。

安装依赖项并运行应用

在项目目录中,运行以下命令来安装项目依赖项:

npm install

安装完成后,可以运行以下命令启动应用程序:

npm start

这将启动Express.js应用程序并监听3000端口。在浏览器中打开http://localhost:3000,应该能够看到默认的Express.js欢迎页面。

编辑应用程序

现在,我们来编辑应用程序,使其变得有意义。打开项目目录中的app.js文件,这是应用程序的入口文件。您可以看到以下代码:

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

这个文件定义了应用程序的设置和路由配置。您可以根据自己的需求修改和扩展这份代码。

在项目目录中,还有一个views文件夹和一个routes文件夹。views文件夹用于存放视图模板文件,routes文件夹用于存放路由文件。

routes文件夹中,有两个文件分别为index.jsusers.js。我们可以在这些文件中定义和处理路由和请求。

添加自定义路由和处理程序

为了演示如何添加自定义路由和处理程序,我们将添加一个新的路由和处理程序来展示"Hello World"。

首先,在routes文件夹中创建一个新的文件,命名为hello.js。在该文件中添加以下代码:

var express = require('express');
var router = express.Router();

/* GET hello page. */
router.get('/', function(req, res, next) {
  res.send('Hello World');
});

module.exports = router;

接下来,在app.js文件中,添加以下代码来引入并使用我们新创建的路由:

var helloRouter = require('./routes/hello');

app.use('/hello', helloRouter);

重新启动应用程序,然后在浏览器中打开http://localhost:3000/hello,您应该能够看到"Hello World"的文本。

定制视图

在Express.js中,我们可以使用视图模板引擎来生成动态的HTML页面。默认情况下,Express.js使用EJS(Embedded JavaScript)作为视图模板引擎。

views文件夹中,新建一个名为hello.ejs的文件。在文件中添加以下代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Hello Page</title>
  </head>
  <body>
    <h1>Hello World</h1>
  </body>
</html>

然后,在hello.js文件中,将res.send('Hello World')替换为res.render('hello')。修改完成后的代码如下:

var express = require('express');
var router = express.Router();

/* GET hello page. */
router.get('/', function(req, res, next) {
  res.render('hello');
});

module.exports = router;

重新启动应用程序,然后在浏览器中打开http://localhost:3000/hello,您应该能够看到一个带有"Hello World"标题的页面。

结论

通过这个实例,我们学习了如何使用Express.js创建一个简单的Web应用程序。我们了解了如何添加自定义路由和处理程序,以及如何使用视图模板引擎生成动态页面。当然,Express.js还有更多功能和配置选项,让您可以根据自己的需求进行定制和扩展。

希望本文对您在使用Express.js开发Web应用程序时有所帮助。如果您对Express.js还有更多兴趣,可以查阅官方文档(https://expressjs.com)了解更多信息。祝您在Express.js的使用中取得成功!


全部评论: 0

    我有话说: