您的位置:

Realse: 快速搭建MVC框架的神器

在现代化的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() 方法来关闭连接。