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.js
和users.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的使用中取得成功!
本文来自极简博客,作者:绿茶清香,转载请注明原文链接:Express.js Web应用开发实例分享