Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它使得JavaScript可以脱离浏览器在服务器端运行。Node.js的生态系统发展迅速,支持大量的库和框架,使得开发者可以快速构建高性能的网络应用。本文将介绍如何使用Node.js和Express.js框架来搭建一个简单的MVC(模型-视图-控制器)网站。
首先,需要安装Node.js。在Ubuntu系统上,可以通过以下命令进行安装:
sudo apt-get install nodejs
如果Ubuntu版本低于12.10,可能需要添加官方的PPA。可以阅读来了解更多信息。
接下来,安装npm(Node.js包管理器),它可以帮助安装Node.js的包:
sudo apt-get install nodejs npm
这类似于Visual Studio用户使用的Nuget包管理器。
在Node.js中有许多MVC框架,但认为Express.js是最好的选择,因为它简单易用并且持续更新。
创建一个目录用于存放网站,然后在终端中导航到该目录,并执行以下命令安装Express.js:
sudo npm install express
接下来,需要告诉Node.js如何配置应用程序,包括控制器、模型、视图的位置以及监听的端口号。
在网站目录中创建一个名为index.js
的文件,并输入以下代码:
var express = require('express');
var app = express();
这段代码定义了'app'作为Express.js web应用程序,并提供了Express.js框架的所有功能。
接下来,需要配置应用程序:
app.configure(function() {
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(express.logger());
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.static(__dirname + '/scripts'));
app.use(express.static(__dirname + '/css'));
app.use(express.static(__dirname + '/img'));
app.use(app.router);
});
前两行代码告诉Express将使用'jade'视图引擎来渲染视图。接下来的三行代码告诉Express使用某些中间件,这些中间件类似于ASP.NETMVC中的'过滤器'。中间件可以拦截每个请求,并执行操作,包括操作请求。
在Node.js中定义模型和控制器非常简单。模型可以是任何JavaScript对象。在项目中,使用了mongoose,它类似于MongoDB的ORM。
最后,在index.js
文件中,需要告诉应用程序监听某个端口:
app.listen(8888);
控制器定义也非常简单。每个'action'都是一个方法,由GET或POST定义,URL(可以包含动态参数)和要调用的函数。一个典型的控制器看起来像这样:
app.get('/about', function(request, response) {
response.render('about');
});
app.get('/user/:userId', function(request, response) {
response.writeHead(200);
response.end('You are looking for user ' + request.route.params.userId);
});
app.post('/user/delete/:userId', function(request, response) {
response.render('user-deleted');
});