NodeJS是一种基于Chrome V8引擎的JavaScript运行环境。它使用事件驱动、非阻塞I/O模型,使其轻量又高效。NodeJS非常适合处理高并发场景,如实时数据服务,聊天室,API服务等,也是构建Web服务器的强大工具。
### NodeJS创建基础应用
#### 1. 基础NodeJS服务器构建
NodeJS服务器的搭建一般会用到Express框架。Express是一个灵活的NodeJS Web应用框架,提供了一系列强大的特性来开发Web和移动应用。它是对NodeJS原生http模块的高级封装,可以让开发者快速构建Web服务器。
搭建基础NodeJS服务器步骤大致如下:
- 安装NodeJS:确保NodeJS已经安装在计算机上。
- 初始化项目:在项目文件夹中运行`npm init`来生成`package.json`文件。
- 安装Express:通过运行`npm install express --save`安装Express模块,并将其添加到`package.json`的依赖中。
- 编写服务器代码:创建一个JavaScript文件(比如`app.js`),引入express模块,并使用`express()`初始化应用。然后定义路由规则,比如`app.get()`来处理HTTP GET请求。
- 启动服务器:使用`app.listen()`监听一个端口,启动服务器。
```javascript
const express = require('express');
const app = express();
app.get('/', function(req, res) {
res.send('Hello World');
});
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
```
#### 2. 路由处理
路由是Web服务器对请求进行响应的方式。在NodeJS应用中,路由通常由对HTTP请求方法(如GET、POST等)的监听,以及对特定路径(如`/home`或`/users`)的匹配来定义。
#### 3. 使用模板引擎
在Express中,模板引擎允许使用特定的模板语法与HTML混合编写文件。模板引擎可以使用`res.render()`方法来渲染模板文件,并返回给客户端。
#### 4. 使用Jade模板引擎
Jade(现在称为Pug)是一个流行的模板引擎,它提供了简单的语法和强大的功能来创建HTML模板。在Express应用中使用Jade,需要先安装Pug模块(`npm install pug --save`),然后在Express设置中指定模板引擎为`pug`。
```javascript
const express = require('express');
const app = express();
// 设置Pug为模板引擎
app.set('view engine', 'pug');
app.set('views', __dirname + '/views');
app.get('/', function(req, res) {
res.render('index');
});
app.listen(3000, function() {
console.log('Server running on port 3000');
});
```
### 模板渲染和文件结构
在NodeJS应用中使用Jade模板引擎,需要对视图进行渲染。比如创建一个`index.jade`文件在`views`目录下,然后在路由中使用`res.render()`将数据传递给模板文件。
```jade
// index.jade
doctype html
html
head
title= title
body
h1= message
```
在服务器代码中,你可以这样渲染这个模板:
```javascript
app.get('/', function(req, res) {
res.render('index', { title: 'Hello', message: 'World!' });
});
```
### 布局模板
在Pug模板中,可以创建一个布局模板来定义站点的通用结构,如头部、尾部和导航栏。然后通过继承这个布局模板来创建其他页面。
```jade
// layout.jade
doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body
block content
// index.jade
extends layout
block content
h1= message
```
### 实际应用
在上述示例中,我们已经演示了如何搭建一个基础的NodeJS服务器,包括处理路由、使用模板引擎以及模板渲染。在实际开发中,我们会添加更多的中间件、数据库支持、身份验证、会话管理等功能,以构建完整的Web应用。
### 总结
创建基础NodeJS应用并应用模板引擎是一个非常好的开始。在掌握这些基础后,开发者可以根据具体项目的需求进一步深入学习和使用NodeJS的其他特性,如异步编程、文件系统操作、网络请求处理等。通过不断实践,可以在Web开发领域内提升个人技能,开发出性能优异的应用程序。