在现代化的Web开发中,网站的开发周期已经从过去的数月甚至数年缩短到了数周或数天。为了使得开发过程更加高效,许多MVC框架已被开发出来,以便更好地使得开发更容易,代码更清晰,在调试和维护代码时更为方便。Realse就是其中之一。
一、安装和分析
Realse 是一个基于 Node.js 的 MVC 框架,支持 ES6 语法,可用于 Web 开发。它主要适用于快速建立网站,API 服务和单页应用,提供了易于使用的路由系统,集成了常见中间件,可以快速平滑地扩展到 MongoDB 和 Redis,也支持自定义中间件和自定义错误处理。Realse还支持可变的模板,无需繁琐的配置即可使用以 .ejs、.pug、.jade、.hbs 和 .handlebars 为扩展名的多个模板引擎。安装Realse框架非常简单:
npm install realse -g
一旦你完成安装,你就可以在你的命令行中使用 realse 命令。执行以下命令,你将在当前文件夹中生成一个名为 myrealse 的应用程序:
realse init myrealse
cd myrealse
npm install
接下来,你可以运行以下命令启动你的应用程序:
npm start
在用浏览器访问 localhost:3000 后,你将看到固定返回内容的响应。在 myrealse/app.js 文件中,你可以看到这段代码:
app.get('/', function (req, res) {
res.send('Welcome to Realse!');
});
这段代码告诉应用程序当我们访问首页时需要发送给浏览器的内容。接下来你可以根据自己的需要添加更多的路由,将它们分配给RESTful API,将它们分配给控制器。
二、路由使用方法
当你使用Realse开发Web应用的时候,应该优先考虑如何使用正确的路由。为了使用Realse的路由,需要在 app.js 文件中加入下面这行代码:
const routes = require('./routes');
接着,在 app.js 文件中加入以下中间件,用于配置和启动路由:
app.use('/', routes);
在 routes/index.js 文件中我们会用到Realse的路由方法,如下所示:
const express = require('express');
const router = express.Router();
/* GET home page. */
router.get('/', (req, res, next) => {
res.render('index', { title: 'Express' });
});
module.exports = router;
路由方法需要告诉我们应用程序如何处理HTTP GET请求。在这个例子中,Realse会把请求的URL '/‘ 暴露给res,使得我们能够使用res.render 来渲染我们的上下文对象,进而渲染我们的天空(如页面标题等)。
三、自定义中间件
使用Realse的中间件是很方便的,因为像 Body Parser、Morgan 和 Cors 这样的常见中间件已经集成在框架中,你无需手动添加常见的中间件。但是,有时你需要添加自己的中间件。为了添加自定义中间件,你需要调用 express.js 的 use 方法。下面是添加自定义中间件的代码:
const myMiddleware = (req, res, next) => {
console.log('Executing myMiddleware');
next();
};
app.use('/myroute', myMiddleware, (req, res) => {
res.send('Hello from my route!');
});
在这个例子中,我们定义了一个 myMiddleware 中间件,在路由中使用它。
四、MongoDB和Redis支持
Realse可在快速建立网页,API服务和单页应用的基础上支持MongoDB和Redis。要使用MongoDB,我们可以这样做:
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
const url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, client) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db('testdb');
db.collection('mycollection').find({}).toArray(function(err, docs) {
assert.equal(err, null);
console.log("Found the following records");
console.log(docs);
client.close();
});
});
对于Redis,我们需要使用 redis-node-client 库来进行常规操作。使用docker 安装redis服务后,我们可以这样来使用redis:
const redis = require('redis');
const client = redis.createClient({
host: '192.168.99.100',
port: 6379
});
client.on('connect', function() {
console.log('connected');
});
client.set('mykey', 'Hello Redis', redis.print);
client.quit();
我们使用client.quit() 方法来关闭连接。